Skip to curriculum
HIREABLE.ENGINEER
The interviewer / core curriculum

Learn the stack in the order it starts to make sense.

JavaScript before framework magic. The browser before performance folklore. Complexity before pattern memorisation. Then practise producing the answer under pressure.

24competency modules
3connected tracks
1repeatable practice loop
THE PRACTICE LOOP

The same six moves.
At every level.

  1. 01LearnBuild the mental model
  2. 02PredictCommit before reveal
  3. 03BuildUse the real workspace
  4. 04ExplainName the trade-off
  5. 05InterviewPerform under pressure
  6. 06ReviewFollow the evidence
Frontend systems lab · WebGL

See the systems a real UI has to survive.

Not another algorithm atlas. These are production frontend failure modes: late network responses, missed frames, and slow navigations.

Data fetching

A stale response is a production bug, not a diagram.

Type two searches. The old request takes longer and tries to overwrite the newer result. Abort it or gate the response by identity.

  1. 01Search “react”
  2. 02Search “react hooks”
  3. 03Old response arrives late
  4. 04Keep the newest result
Open practice
Browser trace / module 015

From bytes to pixels.
See what blocks the frame.

Follow the main thread through DOM, CSSOM, render tree, layout, paint, and composition. Then shorten the path without changing the page.

Read the MDN guide
PERFORMANCE / MAIN FRAME TRACE LIVE
Illustrative first-paint trace
  1. <>
    01HTML → DOM
  2. {}
    02CSS → CSSOM
  3. JS
    03JavaScript
  4. 04Render tree
  5. 05Layout
  6. 06Paint + composite
0107
0 ms / CURRENT EVENT

Navigation requests the document

The browser asks for the HTML. There is nothing to style, lay out, or paint yet.

The dependency path

Know it. Build it.
Explain it.

A module is complete when you can produce its proof—not when you have scrolled through it. Filter to a track, or follow the full sequence from 01 to 24.

01—06
Track 1 / 0 of 6 complete

JavaScript foundations

Build the runtime model first: language mechanics, async behavior, modules, and typed tooling.

023–4 hours

Scope, functions & closures

See lexical scope and function lifetime clearly enough to explain hidden state.

  • execution context
  • lexical scope
  • closures
  • higher-order functions
PROOF OF COMPETENCE

Build a closure-backed utility and explain what remains reachable and why.

Trace closures
033–4 hours

Objects & the prototype chain

Trace property lookup, method context, and composition without class folklore.

  • property lookup
  • this binding
  • prototypes
  • classes & composition
PROOF OF COMPETENCE

Trace a property lookup and refactor an inheritance-heavy example toward composition.

Trace method context
043–4 hours

Collections & data transformation

Choose the right built-in collection and transformation for the job.

  • Array
  • Map & Set
  • iterables
  • immutable updates
PROOF OF COMPETENCE

Implement a transformation twice and justify the chosen collection and complexity.

Build a collection task
054–5 hours

Async JavaScript & the event loop

Predict scheduling, handle failure, and cancel work that is no longer useful.

  • call stack
  • tasks & microtasks
  • promises
  • async/await & cancellation
PROOF OF COMPETENCE

Predict an event-loop trace, then build a cancellable request flow.

Run event-loop trace
064–6 hours

Modules, TypeScript & debugging

Turn a script into typed, testable boundaries and debug it with evidence.

  • ES modules
  • narrowing & generics
  • source maps
  • unit tests
PROOF OF COMPETENCE

Split a small program into typed modules and diagnose a failing test in the debugger.

Debug typed modules
07—16
Track 2 / 0 of 10 complete

Frontend engineering

Move from the web platform to accessible UI, resilient data flows, browser performance, and architecture.

073–4 hours

How the web works

Follow a navigation across the network and know which layer owns each delay.

  • URL & DNS
  • HTTP & TLS
  • request lifecycle
  • caching
PROOF OF COMPETENCE

Narrate a navigation from address bar to first byte and inspect it in DevTools.

Trace a navigation
083–4 hours

Semantic HTML & forms

Make the document model carry structure, behavior, and accessibility by default.

  • landmarks
  • native controls
  • forms
  • progressive enhancement
PROOF OF COMPETENCE

Build a keyboard-usable form that still submits without client JavaScript.

Build an accessible form
095–7 hours

CSS foundations & layout

Debug the cascade and compose responsive layout without fighting the browser.

  • cascade & specificity
  • box model
  • flex & grid
  • responsive design
PROOF OF COMPETENCE

Recreate a responsive layout and debug three cascade or geometry failures.

Build the layout
104–6 hours

DOM, events & Web APIs

Use the browser platform directly before hiding it behind component abstractions.

  • DOM mutation
  • event propagation
  • fetch & storage
  • observers & workers
PROOF OF COMPETENCE

Build a no-framework interface with delegated events and a network request.

Use browser APIs
114–5 hours

Accessibility as engineering

Treat semantics, focus, and input methods as system constraints—not cleanup.

  • accessible names
  • focus order
  • keyboard behavior
  • WCAG 2.2
PROOF OF COMPETENCE

Audit and repair a component using keyboard and accessibility-tree evidence.

Audit accessibility
125–7 hours

Component & state design

Model every visible state and place ownership before writing framework code.

  • state ownership
  • derived state
  • composition
  • reducers & effects
PROOF OF COMPETENCE

Model a multi-state interface before implementing it in React.

Build a state model
134–6 hours

Data fetching & server state

Build networked UI that remains correct through delay, failure, and reordering.

  • request states
  • cache ownership
  • optimistic UI
  • races & AbortController
PROOF OF COMPETENCE

Build search with stale-response protection and explain its request state machine.

Simulate stale responses
144–6 hours

Testing & delivery

Choose the right test boundary and ship a vertical slice through production.

  • unit vs integration
  • E2E
  • Git & CI
  • bundling & deployment
PROOF OF COMPETENCE

Ship one tested vertical slice through a production build.

Build a tested slice
153–5 hours

Critical rendering path & performance

Connect resource order and main-thread work to the pixels users wait for.

  • DOM & CSSOM
  • render tree
  • layout & paint
  • resource priority
PROOF OF COMPETENCE

Run both browser traces, diagnose the blockers, and explain the shorter path.

Run browser trace 015
166–8 hours

Frontend architecture & system design

Turn requirements into boundaries, data flow, resilience, and explicit trade-offs.

  • requirements
  • component boundaries
  • API & cache strategy
  • observability
PROOF OF COMPETENCE

Design a production frontend and defend two explicit trade-offs in a mock.

Design a frontend system
17—24
Track 3 / 0 of 8 complete

Data structures & algorithms

Learn the cost model, core structures, and reusable problem-solving patterns in dependency order.

174–5 hours

Complexity & problem solving

Turn constraints into an invariant, a correct algorithm, and a cost model.

  • constraints
  • invariants
  • Big-O
  • correctness & test cases
PROOF OF COMPETENCE

Replace a brute-force idea with a stated invariant, analysis, and test plan.

Visualize the cost
185–7 hours

Arrays, strings & hashing

Trade memory for lookup speed and precompute repeated range work.

  • arrays & strings
  • Map & Set
  • frequency indexes
  • prefix sums
PROOF OF COMPETENCE

Solve one lookup and one range-query problem and compare their trade-offs.

See hashing move
195–7 hours

Two pointers & sliding windows

Collapse repeated scanning into one controlled pass with a clear invariant.

  • opposing pointers
  • same-direction pointers
  • fixed windows
  • variable windows
PROOF OF COMPETENCE

Derive the window condition aloud and visualize every pointer movement.

Animate the pointers
206–8 hours

Stacks, queues & linked structures

Choose LIFO, FIFO, monotonic order, or pointer rewiring intentionally.

  • stacks & queues
  • monotonic stacks
  • linked lists
  • cycle detection
PROOF OF COMPETENCE

Solve a monotonic-stack problem and reverse a linked list in place.

Visualize the stack
216–8 hours

Binary search, sorting & intervals

Recognize monotone search spaces and transform geometry with ordering.

  • binary search
  • answer-space search
  • sorting
  • interval sweeps
PROOF OF COMPETENCE

Binary-search an answer space and defend the predicate and boundaries.

Trace the search
228–10 hours

Trees, tries & heaps

Traverse hierarchy and maintain partial order without losing state.

  • DFS & BFS
  • BST invariants
  • tries
  • heaps & top-K
PROOF OF COMPETENCE

Trace traversal state and solve one heap or trie problem with analysis.

Walk the tree
238–10 hours

Graphs & disjoint sets

Model relationships explicitly and choose traversal, order, path, or connectivity.

  • graph modeling
  • BFS & DFS
  • topological order
  • union-find
PROOF OF COMPETENCE

Choose a representation and solve a dependency or connectivity problem.

Explore the graph
2410–12 hours

Backtracking, greedy & dynamic programming

Explore choices, prove safe commitments, and reuse overlapping subproblems.

  • decision trees
  • pruning
  • greedy exchange
  • DP state & transition
PROOF OF COMPETENCE

Move from brute force to memoization or tabulation and defend the recurrence.

Build the recurrence
DSA pattern practice indexPreserved from the original roadmap · 0 / 16 masteredOpen 17-node map
00 / PART I

TypeScript & Big-O Primer

The groundwork: the cost model and the TypeScript every later chapter assumes.

Visualize
01 / PART I

Two Pointers

Two indices moving with purpose turn many O(n²) scans into one O(n) pass.

02 / PART I

Sliding Window

A moving range over an array or string — grow, shrink, and track the best.

03 / PART I

Prefix Sums

Precompute running totals so any range query becomes a single subtraction.

04 / PART I

Fast & Slow Pointers

Two runners at different speeds detect cycles and find midpoints in O(1) space.

05 / PART I

In-Place Linked List Reversal

Rewire next pointers as you walk — reverse a list with no extra memory.

06 / PART I

Hash Maps & Sets

O(1) lookup is the workhorse — trade space for time to kill the inner loop.

07 / PART I

Stacks & Monotonic Stacks

LIFO order, and the monotonic trick that answers next-greater in one pass.

08 / PART II

Binary Search

Halve the search space each step — on sorted data and on answer ranges.

09 / PART II

Heaps & Top-K

A partial order that surfaces the best element in O(log n) — top-K, merges, medians.

10 / PART II

Intervals

Sort by an endpoint, then sweep — merge, insert, and detect overlaps.

11 / PART II

Trees: BFS & DFS

Level-order with a queue, depth-first with a stack/recursion — the two tree traversals.

12 / PART II

Tries

A character tree for prefix queries — autocomplete and word search.

13 / PART II

Graphs

Nodes and edges: traversal, connectivity, shortest paths, topological order.

14 / PART III

Backtracking

Explore choices depth-first, undo, and prune — permutations, subsets, combinations.

15 / PART III

Dynamic Programming

Overlapping subproblems + optimal substructure — memoize, then build the table.

16 / PART III

Greedy Algorithms

Commit to the locally best choice when an exchange argument proves it global.

The capstone loop

The path ends where the interview begins.

Pick a track. Clarify the problem, build or design the answer, narrate the trade-offs, and use the scorecard evidence to choose the next pass through the curriculum.

Start a free mock See a sample scorecard