Curriculum Map, Dependency Graph & Phase Plan

Derived from frontend-principal-engineering.md (source of truth) and browser-framework-internals.md (depth track). This file is navigation, not specification. If it conflicts with the spec files, the spec files win.


1. The map: 46 spec areas → 8 clusters

The spec lists 46 numbered areas plus failure case studies, capstones, heuristics and AI rules. Studied in spec order they look like 46 independent subjects. They are not. They collapse into 8 clusters with very different dependency behaviour.

ClusterSpec areasWhat it actually isDependency behaviour
A. Platform substrate1, 2, 3, 4, 10JS runtime, browser architecture, HTML, CSS, networkingRoot. Nearly everything depends on it. Almost nothing depends on the rest.
B. Framework mechanics5, 6, 40React internals, framework comparison, UI algorithmsDepends on A. Gates C and parts of D.
C. Architecture & data7, 8, 9, 19, 31App architecture, state, API integration, unhappy path, rendering architecturesDepends on A + B. Gates E, F, G.
D. Quality attributes11, 12, 13, 36, 37, 38, 39, 41Performance, a11y, security, i18n, mobile, workers, WASM, large-scale UIDepends on A; deepens with C. Mostly parallelisable within the cluster.
E. Quality engineering14, 15, 16, 17, 18, 25Test strategy through org-wide quality policyNeeds a real system (C) to be worth testing. 25 needs all of 14–18.
F. AI-assisted engineering20, 21, 22, 23, 24Agent workflows, test gen, edge-case discovery, exploratory testing, reviewSpine, not a phase. Runs continuously from Phase 1. Quality gated by your own expertise.
G. Platform & delivery26, 27, 28, 29, 30, 32, 33, 34, 35Design systems, platform eng, build tooling, monorepos, microfrontends, observability, reliability, CI/CD, releaseDepends on C + D + E. This is where Staff→Principal happens.
H. Principal judgment42, 43, 44, 45, 46 + case studies + capstones + heuristicsADRs, decision-making, debt, migrations, principal skillsDepends on having lived A–G. Cannot be front-loaded honestly.

The three things that are not clusters

  • Failure case studies (12 listed incidents) — these are assessments, not content. Each one is scheduled against the phase that gives you the tools to solve it. See §5.
  • Capstones (6 levels) — one per phase boundary. They are the promotion gate.
  • Heuristics (10 listed) — the spec says "for every heuristic include counterexamples and limitations." That is a running exercise, tracked in learning-log.md, not a module.

2. Dependency graph

The real edges. A → B means "A must be solid before B is honest."

graph TD
  subgraph SUB["A · Platform substrate"]
    JS["§1 JS runtime<br/>event loop · closures · GC · object shapes"]
    BR["§2 Browser architecture<br/>processes · rendering pipeline · scheduling"]
    HTML["§3 HTML platform<br/>semantics · forms · web components"]
    CSS["§4 CSS architecture<br/>cascade · layout · containment"]
    NET["§10 Networking<br/>HTTP/2·3 · caching · CDN"]
    TS["§1b TypeScript<br/>structural typing · contracts"]
  end

  subgraph FW["B · Framework mechanics"]
    REACT["§5 React deep dive<br/>fiber · render/commit · hooks"]
    ALT["§6 Vue/Svelte/Solid/WC"]
    ALGO["§40 UI algorithms<br/>diff · LRU · virtualization"]
  end

  subgraph ARCH["C · Architecture & data"]
    APP["§7 App architecture"]
    STATE["§8 State management"]
    API["§9 API integration"]
    EDGE["§19 Unhappy path"]
    SSR["§31 SSR/SSG/ISR/islands"]
  end

  subgraph QA["D · Quality attributes"]
    PERF["§11 Performance"]
    A11Y["§12 Accessibility"]
    SEC["§13 Security"]
    I18N["§36 i18n"]
    MOB["§37 Mobile web"]
    WORK["§38 Workers"]
    WASM["§39 WASM"]
    BIGUI["§41 Large-scale UI"]
  end

  subgraph TEST["E · Quality engineering"]
    TSTRAT["§14 Test strategy"]
    UIT["§15 UI testing"]
    E2E["§16 E2E"]
    INT["§17 Integration"]
    VIS["§18 Visual regression"]
    QEP["§25 Org quality policy"]
  end

  subgraph PLAT["G · Platform & delivery"]
    DS["§26 Design systems"]
    FPE["§27 Platform engineering"]
    BUILD["§28 Build tooling"]
    MONO["§29 Monorepos"]
    MFE["§30 Microfrontends"]
    OBS["§32 Observability"]
    REL["§33 Reliability"]
    CICD["§34 CI/CD"]
    RELE["§35 Release engineering"]
  end

  subgraph PRIN["H · Principal judgment"]
    ADR["§42 ADRs"]
    DEC["§43 Decision making"]
    DEBT["§44 Technical debt"]
    MIG["§45 Migrations"]
    PSK["§46 Principal skills"]
  end

  JS --> BR
  JS --> REACT
  JS --> ALGO
  JS --> WORK
  BR --> REACT
  BR --> PERF
  BR --> A11Y
  HTML --> A11Y
  HTML --> CSS
  HTML --> REACT
  CSS --> PERF
  CSS --> DS
  NET --> API
  NET --> PERF
  NET --> SSR
  NET --> SEC
  TS --> API
  TS --> APP

  REACT --> APP
  REACT --> STATE
  REACT --> SSR
  ALGO --> BIGUI
  ALT --> APP

  APP --> STATE
  STATE --> API
  API --> EDGE
  STATE --> EDGE
  SSR --> PERF
  REACT --> SSR

  PERF --> OBS
  PERF --> BIGUI
  WORK --> BIGUI
  WORK --> WASM
  A11Y --> DS
  MOB --> PERF

  EDGE --> TSTRAT
  APP --> TSTRAT
  TSTRAT --> UIT
  TSTRAT --> E2E
  TSTRAT --> INT
  TSTRAT --> VIS
  UIT --> QEP
  E2E --> QEP
  INT --> QEP
  VIS --> QEP

  CSS --> BUILD
  BUILD --> MONO
  MONO --> MFE
  DS --> MFE
  DS --> FPE
  MONO --> FPE
  QEP --> CICD
  CICD --> RELE
  OBS --> REL
  RELE --> REL
  FPE --> MFE

  MFE --> ADR
  REL --> ADR
  FPE --> ADR
  ADR --> DEC
  DEC --> MIG
  DEBT --> MIG
  MIG --> PSK
  DEC --> PSK

The five load-bearing chains

Everything else is decoration around these. If you only get five things right:

  1. Scheduling chain — event loop → task/microtask semantics → long tasks → INP → concurrent rendering → Suspense/transitions → streaming SSR → hydration cost. Rendering the heuristic "performance problems are often scheduling problems" legible.

  2. Async-correctness chain — promises/cancellation → request lifecycle → server-state cache → race conditions → optimistic update + rollback → offline/conflict. This is where "stale response overwrites newer data" lives.

  3. Cache-coherence chain — HTTP cache semantics → ETag/Cache-Control → CDN → SSR/ISR revalidation → query-cache invalidation → stale-while-revalidate UX. One concept, four layers, four different invalidation vocabularies.

  4. Semantics chain — DOM → semantic HTML → accessibility tree → accessible name computation → focus management → a11y as a design-system contract → a11y CI gate. "Accessibility is architecture, not polish" is only true if you can walk this chain.

  5. Org-topology chain — package boundaries → build graph → monorepo → independent deployability → microfrontends → governance → standardisation vs autonomy. "Frontend architecture frequently reflects organizational architecture."

Cross-track hooks into browser-framework-internals.md

Only cross when the frontend topic genuinely stalls without it:

Frontend topicInternals sectionCross when
§1 event loop / §11 INP§16 Browser Schedulingyou need to know why a queue is prioritised, not just that it is
§2 rendering pipeline§5 Complete Rendering Pipeline, §12–15 layout/paint/compositora layout/paint cost is inexplicable at the CSS level
§4 CSS containment§10 CSS Engine Internals, §12 Layout Engineyou need invalidation scope, not spec prose
§5 React fiber§27 Build a React-Like Runtime, §28 React Source Apprenticeshipreconciliation behaviour contradicts your model
§8 signals/stores§29 Vue-like reactive runtime, §33 Redux-like store, §36 signalscomparing reactivity models architecturally
§8/§9 server state§35 Build a Server-State Query Cachedesigning a cache invalidation policy
§13 security§19 Browser Security Architecturereasoning about process/origin boundaries
§28 build tooling§38 Minimal Bundler, §39 JSX compilerevaluating bundler trade-offs
§41 large-scale UI§37 Virtualized List Enginevirtualization correctness/perf
§16 E2E§41 Browser Automation Layerdebugging automation flakiness at the protocol level

3. Phases

Seven phases plus a continuous spine. Each phase ends in a capstone-shaped deliverable and a promotion gate. Depth target rises per phase; tutorial density falls per phase, per the spec's closing instruction.

Spine (continuous, from Phase 1 onward)

F · AI-assisted engineering (§20–24) + §46 writing practice Not a phase. Every module carries an AI-assisted exercise. The rule from the spec holds throughout: AI increases leverage, never replaces understanding. You may not use an agent to produce an artifact whose failure modes you cannot enumerate yourself.


Phase 1 — Platform Substrate

Spec areas: 1, 2, 3, 4, 10 · Level: Foundation → Senior Thesis: Before any abstraction, know what the abstraction is hiding.

ModuleFocusDepth target
fe-01Execution model: event loop, task/microtask, rendering pipeline couplingcan predict ordering + explain scheduling priority
fe-02Memory model: closures, GC, retention, leak taxonomy, heap snapshotscan find a leak from a snapshot diff, unaided
fe-03Object shapes, hidden classes, ICs, JIT — and when it actually matterscan say when this is irrelevant, which is most of the time
fe-04HTML as a platform: semantics, forms, dialog/popover, web componentscan delete a component and replace it with a primitive
fe-05CSS: cascade, layers, custom properties, containment, content-visibilitycan reason about invalidation scope
fe-06Layout: flex, grid, subgrid, container queries, intrinsic sizing, stackingcan predict layout without running it
fe-07Networking: HTTP/1.1→3, connection reuse, cache headers, ETags, CDN, prioritiescan read a waterfall and name the bottleneck class
fe-08TypeScript as a contract system: structural typing, variance, branded types, runtime validation boundarycan design a type-safe API client that fails loudly

Capstone 1 (Foundation): production-quality accessible responsive application, built with deliberately minimal framework surface. Budget-constrained.


Phase 2 — Framework Mechanics

Spec areas: 5, 6, 40 · Level: Senior Thesis: A framework is a scheduling and diffing policy with ergonomics attached. Prereq: fe-01, fe-02, fe-04, fe-05.

ModuleFocus
fe-09Component model, reconciliation, Fiber, render vs commit phase
fe-10Hooks mechanics: state, effects, stale closures, refs, the useEffect overuse pathology
fe-11Memoization economics: when useMemo/memo/compiler pays, when it costs
fe-12Concurrent rendering, transitions, Suspense — as scheduling, not magic
fe-13Reactivity models compared: VDOM vs signals vs compiled (Vue/Svelte/Solid/WC)
fe-14UI algorithms: tree diff, LRU, tries, interval trees, virtualization, debounce/throttle

Deliverable: a written architectural comparison of three reactivity models with a measured micro-benchmark and an explicit statement of what the benchmark does not prove.


Phase 3 — Architecture & Data

Spec areas: 7, 8, 9, 19, 31 · Level: Senior → Staff Thesis: A frontend is a distributed system with a rendering engine attached. Prereq: Phase 2 + fe-07.

ModuleFocus
fe-15State taxonomy: local / lifted / URL / server / global / derived / cached / persistent
fe-16Server state ≠ client state: query caches, invalidation, dedup, SWR
fe-17Race conditions, cancellation, idempotency, optimistic update + rollback
fe-18API integration as distributed systems: retries, timeouts, backpressure, partial failure
fe-19Application architecture: feature slices, dependency direction, ports/adapters, state machines — and when this is overengineering
fe-20Designing for the unhappy path (§19 in full — the 29-item edge-case matrix)
fe-21Rendering architectures: CSR/SSR/SSG/ISR/streaming/islands/RSC and their failure modes

Capstone 2 (Intermediate): complex application with API integration, state management, full testing — built against an intentionally unreliable API.


Phase 4 — Quality Attributes

Spec areas: 11, 12, 13, 36, 37, 38, 39, 41 · Level: Staff Thesis: These are not features. They are properties of the architecture, and they are measurable. Prereq: Phase 3. fe-22 is the anchor; the rest parallelise heavily.

ModuleFocus
fe-22Performance engineering: CWV, LCP/INP/CLS/TTFB, budgets, quantitative claims
fe-23Loading architecture: code splitting, tree shaking, preload/prefetch, Early Hints
fe-24Accessibility as engineering: a11y tree, names, focus, ARIA, the limits of automation
fe-25Frontend security: XSS taxonomy, CSP, CORS, cookies, tokens, Trusted Types, supply chain
fe-26i18n/l10n: Unicode, RTL, pluralization, text expansion, timezones
fe-27Mobile web: CPU/memory/network reality, viewport, virtual keyboards, PWA, service workers
fe-28Workers & parallelism: message passing, transferables, SAB/Atomics — and offload economics
fe-29WASM: enough for architectural judgment, not enough to write a compiler
fe-30Large-scale UI: 100k rows, virtualization, editors, real-time feeds, Canvas/SVG

Capstone 3 (Senior): high-performance application with SSR, caching, observability, defended with numbers against a stated budget.


Phase 5 — Quality Engineering

Spec areas: 14, 15, 16, 17, 18, 25 · Level: Staff Thesis: Quality is an architecture problem. Thousands of tests can still produce low confidence. Prereq: Phase 3 (need a system worth testing) + fe-20 (need to know what to test for).

ModuleFocus
fe-31Test strategy: for each type — what it catches, misses, costs, and how hard failures are to diagnose
fe-32UI testing: user-centric, async, forms, keyboard, a11y assertions; anti-patterns
fe-33E2E with Playwright: contexts, fixtures, interception, traces, flaky-test prevention
fe-34Integration & contract testing: schema validation, service virtualization, ephemeral envs
fe-35Visual regression: tolerance, false positives, browser differences
fe-36AI-assisted QA (§21–23): test matrices, edge-case discovery, exploratory agents
fe-37Principal quality engineering (§25): org policy, gates, budgets, browser matrix, release criteria

Deliverable: an organization-wide testing policy document with explicit confidence claims and explicit un-covered risk.


Phase 6 — Platform & Delivery

Spec areas: 26, 27, 28, 29, 30, 32, 33, 34, 35 · Level: Staff → Principal Thesis: You stop building applications and start building the conditions under which others build them. Prereq: Phases 4 and 5.

ModuleFocus
fe-38Design systems: tokens, primitives, versioning, adoption, governance, contribution models
fe-39Build tooling: module graphs, tree shaking, source maps, incremental builds, HMR; bundler architectures compared
fe-40Monorepos: workspaces, boundaries, dependency graphs, remote caching, affected builds, ownership
fe-41Microfrontends — taught critically. Is this an organizational or a technical problem?
fe-42Frontend platform engineering: templates, standards, codegen, DX, feature flags, preview envs
fe-43Observability: RUM, Web Vitals, tracing, correlation IDs, session replay. Diagnose "it feels slow" with evidence
fe-44Reliability: SLIs/SLOs, error budgets, graceful degradation, kill switches, circuit breakers
fe-45CI/CD + release engineering: risk-based testing, pipeline economics, canaries, rollout, rollback, schema evolution

Capstone 4 (Staff): shared design system + frontend platform used by multiple applications.


Phase 7 — Principal Judgment

Spec areas: 42, 43, 44, 45, 46 + failure case studies + heuristics · Level: Principal → Distinguished Thesis: The work is now decisions, influence, and time horizons — and being right about reversibility. Prereq: Phase 6.

ModuleFocus
fe-46ADRs: context, constraints, options, decision, consequences, reversibility, migration
fe-47Technical decision-making: one-way vs two-way doors, blast radius, optionality, build vs buy, standardisation vs autonomy
fe-48Technical debt: taxonomy, quantification, prioritisation, and how to sell paying it down
fe-49Migrations: strangler patterns, incremental cutover, the 8 migration projects in §45
fe-50Principal skills: strategy, RFCs, influence without authority, incident analysis, radar, mentoring
fe-51Failure case-study gauntlet: all 12 incidents, cold, under the 7-question protocol

Capstone 5 (Principal): frontend architecture for dozens of teams — RFC, diagrams, budgets, testing strategy, observability, security model, a11y policy, migration strategy, CI/CD, DX, operational model.

Capstone 6 (Distinguished/SME): multi-year frontend platform strategy — standardisation, technology radar, migration roadmap, platform APIs, governance, org topology, adoption, build-vs-buy, measurable outcomes.


4. Parallelisation

Safe to study concurrently

GroupWhy it's safe
fe-03 (JIT/shapes) ‖ fe-04 (HTML) ‖ fe-05 (CSS) ‖ fe-07 (networking)Disjoint mechanisms; no shared prerequisite beyond fe-01/fe-02
fe-08 (TypeScript) ‖ anything in Phase 1–2TS is a contract discipline, not a runtime dependency
fe-13 (framework comparison) ‖ Phase 3Comparison is analytical; doesn't gate architecture work
fe-24 (a11y) ‖ fe-25 (security) ‖ fe-26 (i18n) ‖ fe-27 (mobile)Independent quality attributes with independent tooling
fe-28 (workers) ‖ fe-29 (WASM)Related but not dependent; WASM only deepens with workers
fe-32 ‖ fe-33 ‖ fe-34 ‖ fe-35 (test types)Independent given fe-31
fe-38 (design systems) ‖ fe-39/fe-40 (build/monorepo)Different axes of the same platform
Spine F (AI workflows) ‖ everythingBy design
§46 writing practice (RFCs/ADRs) ‖ everything from Phase 3Start writing early; quality compounds

Hard prerequisites — do not parallelise

BlockedRequiresWhy the shortcut fails
fe-22 Performancefe-01 (scheduling), fe-02 (memory), fe-05/fe-06 (layout), fe-07 (network)Without these you optimise symptoms and report noise as wins
fe-12 Concurrent React / Suspensefe-01"Concurrent" is meaningless without task/microtask/frame semantics
fe-16–fe-17 Server state & racesfe-01 (async ordering), fe-07 (HTTP caching)You'll build a cache with no invalidation theory and races you can't name
fe-21 Rendering architecturesfe-09 (render/commit), fe-07 (caching), fe-12 (streaming)Hydration cost and streaming behaviour are unexplainable otherwise
fe-24 Accessibilityfe-04 (semantic HTML)ARIA-first a11y produces compliant-looking, unusable UI
fe-30 Large-scale UIfe-14 (algorithms), fe-22 (perf method), fe-28 (workers)Virtualization without measurement is cargo cult
fe-37 Org quality policyfe-31–fe-35You cannot set a policy over test types you haven't paid the cost of
fe-41 Microfrontendsfe-38, fe-39, fe-40Microfrontends are a consequence of build + design-system + org constraints
fe-43 Observabilityfe-22You'll instrument metrics you can't interpret
fe-49 Migrationsfe-46, fe-47Migration without a decision record is a rewrite with better branding
Capstone 5/6Phases 1–6These are integration exercises; there is nothing to integrate otherwise

Explicitly deferred (common temptation to start early)

  • Microfrontends (§30) — the most requested, least ready topic. Deferred to Phase 6 on purpose.
  • Design systems (§26) — feels like a Phase 1 topic. It isn't; it needs a11y, CSS architecture, versioning and governance to be real.
  • State machines / DDD / clean architecture (§7) — Phase 3, and taught with its overengineering critique attached.

5. Failure case-study schedule

The 12 incidents from the spec, assigned to the earliest phase that gives you the tools to solve them honestly. Each runs under the spec's 7-question protocol.

IncidentPhaseAnchor module
Rendering loop freezes browser1fe-01
Memory leak after hours1fe-02
Stale response overwrites newer data3fe-17
Global rerenders from context misuse2fe-11
Hydration mismatch3fe-21
CSS bundle explosion4fe-23
Accessibility regression4fe-24
Cache poisoning4fe-25
Flaky E2E suite5fe-33
Design-system upgrade breaks many apps6fe-38
Dependency compromise6fe-42
Poor observability hides an outage6fe-43

Phase 7 re-runs all twelve, cold, in fe-51.


6. Promotion gates

You do not advance a phase by finishing modules. You advance by clearing the gate.

GateCriterion
1 → 2Predict execution order and rendering timing of unfamiliar async code without running it. Find a memory leak from a heap snapshot diff. Read a network waterfall and name the bottleneck class.
2 → 3Explain any re-render in a real app from evidence. Argue VDOM vs signals with measured data and stated limits of that data.
3 → 4Ship a feature that survives the full unhappy-path matrix. Produce a state-ownership diagram a reviewer can attack.
4 → 5Defend a performance claim quantitatively against a stated budget. Pass a keyboard-and-screen-reader review with no automated tooling.
5 → 6Write a test policy that states, explicitly, what it does not give confidence in.
6 → 7Own a platform decision with a documented blast radius and reversibility analysis.
7 → doneProduce a multi-year strategy that another Principal engineer cannot trivially dismantle.