docs(docs): add strategy, coding, and system design documentation hierarchy

This commit is contained in:
Prad Nukala
2026-08-14 18:37:13 -04:00
parent 87581c4f4b
commit 91c45ea5de
70 changed files with 1343 additions and 31 deletions
+44
View File
@@ -0,0 +1,44 @@
---
title: Agenda
description: Track your progress
sidebar:
icon: calendar
---
## The Method (three layers, strictly separated)
1. **Concept layer — HelloInterview lessons (UNTIMED).** Read the pattern lesson, work its interactive walkthrough problems slowly, extract the recognition triggers ("sorted array + pair target → two pointers"). No clock. Understanding is the deliverable.
2. **Application layer — NeetCode 150 A-set (TIMED, always).** Same day, solve the NC150 problems for that topic under clock: 20 min/medium, 12 min/easy, out loud, no pauses. First-attempt performance is logged.
3. **Transfer layer — B-set spaced repetition (TIMED, unseen problems).** For each concept, hold out a B-set of problems you have NEVER solved: HelloInterview's own practice problems for that pattern first, then LC pattern-tagged mediums when exhausted. Fire B-set problems at **+2 days, +5 days, +10 days** after the concept's learning day. Solving an unseen problem proves the concept transferred; re-solving a remembered one proves nothing.
## 1. Self-Evaluation Rubric (score every timed problem, A or B)
Score 02 on each axis, 10-point total, logged in the PM review:
| Axis | 2 | 1 | 0 |
|---|---|---|---|
| **Recognition** | Named the pattern ≤2 min | Found it after false start | Needed hint/gave up |
| **Plan-first** | Stated brute force + optimization path BEFORE code | Partial plan, coded early | Coded blind |
| **Execution** | Clean pass within time box | Solved over time / with bug caught late | DNF |
| **Analysis** | Complexity stated correctly + edge cases traced aloud | One of the two | Neither |
| **Verbalization** | Continuous narration throughout | Went silent under pressure | Mostly silent |
**Mastery states per concept (driven by B-set scores only):**
- 🟢 **Green:** 3 consecutive B-set problems ≥8/10 → concept exits rotation (spot-check weekly)
- 🟡 **Yellow:** B-set scores 67 → stays in +5/+10 rotation
- 🔴 **Red:** B-set score ≤5 → redo the HI lesson next morning, restart the +2/+5/+10 clock
The interview is scored on exactly these five axes. Grading yourself on them daily is the meta-rep.
## The 10-Hour Day (6 days/week; Sundays OFF, non-negotiable)
| Block | Time | Content |
|---|---|---|
| B1 | 2.0h | **HI concept layer:** today's pattern lesson + all walkthrough problems, untimed |
| B2 | 2.5h | **A-set:** today's NC150 problems for the pattern, fully timed, out loud |
| B3 | 1.5h | **B-set spaced repetition:** every problem due today at +2/+5/+10, timed, scored |
| B4 | 1.5h | **SD / Track B:** HelloInterview SD breakdowns & solo reps, mocks, or practical builds (Stripe integration, bug-squash, take-homes) per weekly schedule |
| B5 | 1.0h | **Behavioral / pipeline:** story writing & rehearsal, applications, DMs, screens |
| B6 | 0.5h | **Miss log + rubric scoring:** tag every sub-8 by failed axis; queue tomorrow's B-set |
| — | 1.0h | Breaks (2× 30 min, enforced — walk Angelo, lift, no screens) |
**Sustainability rule:** 60 hrs/week for 8 weeks is a real load even for you. Sundays fully off, breaks enforced, sleep ≥7h. Week 6 (onsites) is the week that counts — arriving at it cooked forfeits the whole camp.
+44
View File
@@ -0,0 +1,44 @@
---
title: Evaluation
description: Track your progress
sidebar:
icon: check-circle
---
## The Method (three layers, strictly separated)
1. **Concept layer — HelloInterview lessons (UNTIMED).** Read the pattern lesson, work its interactive walkthrough problems slowly, extract the recognition triggers ("sorted array + pair target → two pointers"). No clock. Understanding is the deliverable.
2. **Application layer — NeetCode 150 A-set (TIMED, always).** Same day, solve the NC150 problems for that topic under clock: 20 min/medium, 12 min/easy, out loud, no pauses. First-attempt performance is logged.
3. **Transfer layer — B-set spaced repetition (TIMED, unseen problems).** For each concept, hold out a B-set of problems you have NEVER solved: HelloInterview's own practice problems for that pattern first, then LC pattern-tagged mediums when exhausted. Fire B-set problems at **+2 days, +5 days, +10 days** after the concept's learning day. Solving an unseen problem proves the concept transferred; re-solving a remembered one proves nothing.
## 1. Self-Evaluation Rubric (score every timed problem, A or B)
Score 02 on each axis, 10-point total, logged in the PM review:
| Axis | 2 | 1 | 0 |
|---|---|---|---|
| **Recognition** | Named the pattern ≤2 min | Found it after false start | Needed hint/gave up |
| **Plan-first** | Stated brute force + optimization path BEFORE code | Partial plan, coded early | Coded blind |
| **Execution** | Clean pass within time box | Solved over time / with bug caught late | DNF |
| **Analysis** | Complexity stated correctly + edge cases traced aloud | One of the two | Neither |
| **Verbalization** | Continuous narration throughout | Went silent under pressure | Mostly silent |
**Mastery states per concept (driven by B-set scores only):**
- 🟢 **Green:** 3 consecutive B-set problems ≥8/10 → concept exits rotation (spot-check weekly)
- 🟡 **Yellow:** B-set scores 67 → stays in +5/+10 rotation
- 🔴 **Red:** B-set score ≤5 → redo the HI lesson next morning, restart the +2/+5/+10 clock
The interview is scored on exactly these five axes. Grading yourself on them daily is the meta-rep.
## The 10-Hour Day (6 days/week; Sundays OFF, non-negotiable)
| Block | Time | Content |
|---|---|---|
| B1 | 2.0h | **HI concept layer:** today's pattern lesson + all walkthrough problems, untimed |
| B2 | 2.5h | **A-set:** today's NC150 problems for the pattern, fully timed, out loud |
| B3 | 1.5h | **B-set spaced repetition:** every problem due today at +2/+5/+10, timed, scored |
| B4 | 1.5h | **SD / Track B:** HelloInterview SD breakdowns & solo reps, mocks, or practical builds (Stripe integration, bug-squash, take-homes) per weekly schedule |
| B5 | 1.0h | **Behavioral / pipeline:** story writing & rehearsal, applications, DMs, screens |
| B6 | 0.5h | **Miss log + rubric scoring:** tag every sub-8 by failed axis; queue tomorrow's B-set |
| — | 1.0h | Breaks (2× 30 min, enforced — walk Angelo, lift, no screens) |
**Sustainability rule:** 60 hrs/week for 8 weeks is a real load even for you. Sundays fully off, breaks enforced, sleep ≥7h. Week 6 (onsites) is the week that counts — arriving at it cooked forfeits the whole camp.
+44
View File
@@ -0,0 +1,44 @@
---
title: Progress
description: Track your progress
sidebar:
icon: loader
---
## The Method (three layers, strictly separated)
1. **Concept layer — HelloInterview lessons (UNTIMED).** Read the pattern lesson, work its interactive walkthrough problems slowly, extract the recognition triggers ("sorted array + pair target → two pointers"). No clock. Understanding is the deliverable.
2. **Application layer — NeetCode 150 A-set (TIMED, always).** Same day, solve the NC150 problems for that topic under clock: 20 min/medium, 12 min/easy, out loud, no pauses. First-attempt performance is logged.
3. **Transfer layer — B-set spaced repetition (TIMED, unseen problems).** For each concept, hold out a B-set of problems you have NEVER solved: HelloInterview's own practice problems for that pattern first, then LC pattern-tagged mediums when exhausted. Fire B-set problems at **+2 days, +5 days, +10 days** after the concept's learning day. Solving an unseen problem proves the concept transferred; re-solving a remembered one proves nothing.
## 1. Self-Evaluation Rubric (score every timed problem, A or B)
Score 02 on each axis, 10-point total, logged in the PM review:
| Axis | 2 | 1 | 0 |
|---|---|---|---|
| **Recognition** | Named the pattern ≤2 min | Found it after false start | Needed hint/gave up |
| **Plan-first** | Stated brute force + optimization path BEFORE code | Partial plan, coded early | Coded blind |
| **Execution** | Clean pass within time box | Solved over time / with bug caught late | DNF |
| **Analysis** | Complexity stated correctly + edge cases traced aloud | One of the two | Neither |
| **Verbalization** | Continuous narration throughout | Went silent under pressure | Mostly silent |
**Mastery states per concept (driven by B-set scores only):**
- 🟢 **Green:** 3 consecutive B-set problems ≥8/10 → concept exits rotation (spot-check weekly)
- 🟡 **Yellow:** B-set scores 67 → stays in +5/+10 rotation
- 🔴 **Red:** B-set score ≤5 → redo the HI lesson next morning, restart the +2/+5/+10 clock
The interview is scored on exactly these five axes. Grading yourself on them daily is the meta-rep.
## The 10-Hour Day (6 days/week; Sundays OFF, non-negotiable)
| Block | Time | Content |
|---|---|---|
| B1 | 2.0h | **HI concept layer:** today's pattern lesson + all walkthrough problems, untimed |
| B2 | 2.5h | **A-set:** today's NC150 problems for the pattern, fully timed, out loud |
| B3 | 1.5h | **B-set spaced repetition:** every problem due today at +2/+5/+10, timed, scored |
| B4 | 1.5h | **SD / Track B:** HelloInterview SD breakdowns & solo reps, mocks, or practical builds (Stripe integration, bug-squash, take-homes) per weekly schedule |
| B5 | 1.0h | **Behavioral / pipeline:** story writing & rehearsal, applications, DMs, screens |
| B6 | 0.5h | **Miss log + rubric scoring:** tag every sub-8 by failed axis; queue tomorrow's B-set |
| — | 1.0h | Breaks (2× 30 min, enforced — walk Angelo, lift, no screens) |
**Sustainability rule:** 60 hrs/week for 8 weeks is a real load even for you. Sundays fully off, breaks enforced, sleep ≥7h. Week 6 (onsites) is the week that counts — arriving at it cooked forfeits the whole camp.
@@ -0,0 +1,93 @@
---
title: 'Recognition'
description: 'There are only 6 structural families. Every pattern is a traversal or maintenance strategy over one of them.'
---
## Family 1 — Contiguous Linear (arrays, strings)
*Structure property: O(1) index access, order is information.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Two Pointers** (7) | Converging/parallel index walk that prunes the O(n²) pair space using order | Sorted input · pair/triplet with target · palindrome · in-place partition |
| **Sliding Window** (5) | Two pointers + incremental state between them (Two Pointers with a payload) | "Longest/shortest substring/subarray with property X" · contiguous constraint |
| **Prefix Sum** (2) | Precomputed cumulative state → O(1) range queries | "Sum of range" · "subarray sum equals K" · repeated interval aggregation |
| **Binary Search** (5) | Halving over ANY monotonic predicate — not just sorted arrays | Sorted/rotated input · "minimize the maximum" · answer space is monotonic (Koko) |
| **Matrices** (3) | 2D index arithmetic; often a graph in disguise | Grid traversal/rotation/spiral · if cells have neighbors → it's Family 5 |
**Systems anchor:** prefix sum is a materialized view; sliding window is stream processing with an eviction policy.
## Family 2 — Nodal Linear (linked lists)
*Structure property: O(1) splice, no random access. Everything is pointer surgery.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Linked List** (5) | Three moves cover it all: fast/slow runners, reversal, dummy-head splicing | Cycle detection · middle/Nth-from-end · reverse/reorder · merge |
**Systems anchor:** LRU Cache = hashmap + doubly-linked list — the one hybrid that appears constantly (it's a cache eviction index).
## Family 3 — Auxiliary Ordering Structures (stack, heap)
*Structure property: you don't traverse them — you maintain them while traversing something else.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Stack** (5) | LIFO memory of "unresolved" items; monotonic stack = discard dominated candidates | Matching/nesting (parens) · "next greater element" · "previous smaller" · expression eval |
| **Heap** (5) | Partial order — cheap access to extremum without full sort | "Kth largest/smallest" · "top K" · merge K streams · running median (two heaps) |
**Systems anchor:** monotonic stack ≈ log compaction (drop entries superseded by newer state); heap ≈ priority scheduling / Dijkstra's frontier / timer wheels.
## Family 4 — Hierarchical (trees, tries)
*Structure property: recursive shape — every node roots a subtree. Solutions are recurrences.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on trees** (part of 13) | Post/pre/in-order recursion; answer composed from subtree answers | "Max depth / diameter / LCA / validate" · anything defined recursively |
| **BFS on trees** (part of 8) | Level-order via queue | "Level by level" · "right side view" · minimum depth |
| **Trie** (2) | Character-indexed tree; shared prefixes = shared paths | Prefix search · autocomplete · word dictionaries · many-string matching |
| **BST specifically** | Sorted array in tree form — in-order traversal IS sorted order | "Kth smallest in BST" · range queries · validate |
**Systems anchor:** trie ≈ radix routing table / IPLD path resolution; BST invariant ≈ index B-tree.
## Family 5 — Relational (graphs)
*Structure property: arbitrary edges; must track visited. Trees are just acyclic connected graphs — same traversals, plus bookkeeping.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on graphs** (13) | Exhaustive reachability; recursion + visited set | Islands/regions/flood fill · connectivity · cycle detection (directed: 3-color) |
| **BFS on graphs** (8) | Frontier expansion → **shortest path in unweighted graphs, always** | "Minimum steps/moves" · multi-source spread (rotting oranges) · word ladder |
| **Graphs** (6): Topological sort | DFS post-order reversed / Kahn's in-degree queue over a DAG | Dependencies · prerequisites · build order · "valid ordering exists?" |
| **Graphs** (6): Union-Find | Incremental connectivity without traversal | Dynamic "same component?" queries · redundant edge · counting components |
**Systems anchor:** topo sort = dependency resolution (your Turborepo build graph); union-find = partition detection; BFS = gossip propagation. A matrix with neighbor-moves is ALWAYS this family, not Family 1.
## Family 6 — Decision-Space (implicit graphs you build while exploring)
*Structure property: nodes are STATES, not data. The structure doesn't exist until you walk it.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Backtracking** (6) | DFS over the state tree with undo; exhaustive enumeration | "All subsets/permutations/combinations" · constraint satisfaction · "generate all valid X" |
| **Dynamic Programming** (10) | Backtracking + memoization — overlapping subproblems collapse the exponential tree | "Count ways" · "min/max cost to reach" · choices with shared substructure · optimal substructure |
| **Greedy** (5) | DP where the local optimum provably suffices — no memo needed | Sort-then-commit works · exchange argument holds · intervals scheduling · jump game |
**Systems anchor:** DP memo = idempotency cache over a deterministic state machine; backtracking = saga with compensating undo; greedy = eventually-consistent local decisions that provably converge.
---
## The Recognition Decision Tree (run this in the first 2 minutes — rubric axis #1)
1. **Contiguous array/string, no neighbor semantics?** → Family 1. Sorted or monotonic answer space → Binary Search. Pair/window constraint → Two/Sliding. Range sums → Prefix.
2. **Nodes with next-pointers?** → Family 2. Reach for fast/slow or dummy-head before anything clever.
3. **Need "next greater," nesting, or top-K while scanning?** → Family 3 auxiliary structure on top of whatever you're traversing.
4. **Recursive shape (tree/prefix data)?** → Family 4. Ask: does the answer compose from subtrees (DFS) or from levels (BFS)?
5. **Arbitrary connections, grids with movement, dependencies?** → Family 5. Unweighted shortest = BFS. Ordering over DAG = topo. Dynamic connectivity = union-find. Otherwise DFS.
6. **Enumerate or optimize over CHOICES?** → Family 6. All solutions → backtracking. Overlapping subproblems → DP. Provable local choice → greedy.
## The Escalation Lattice (when stuck, patterns upgrade along these edges)
- Two Pointers —*add state*→ Sliding Window —*add aggregation*→ Prefix Sum
- Brute-force scan —*monotonic predicate*→ Binary Search on answer
- Tree DFS —*add visited set*→ Graph DFS —*add undo*→ Backtracking —*add memo*→ DP —*add proof*→ Greedy
- Sort —*need only extremum*→ Heap —*need running extremes*→ Monotonic Stack
- BFS —*add weights*→ Dijkstra (= BFS with a heap: Families 3+5 composed)
Memorize the lattice, not 16 patterns. In the interview, naming the family out loud ("this is a state-space problem, so backtracking or DP depending on overlap") IS the recognition signal the rubric scores.
@@ -0,0 +1,93 @@
---
title: 'Escalation'
description: 'There are only 6 structural families. Every pattern is a traversal or maintenance strategy over one of them.'
---
## Family 1 — Contiguous Linear (arrays, strings)
*Structure property: O(1) index access, order is information.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Two Pointers** (7) | Converging/parallel index walk that prunes the O(n²) pair space using order | Sorted input · pair/triplet with target · palindrome · in-place partition |
| **Sliding Window** (5) | Two pointers + incremental state between them (Two Pointers with a payload) | "Longest/shortest substring/subarray with property X" · contiguous constraint |
| **Prefix Sum** (2) | Precomputed cumulative state → O(1) range queries | "Sum of range" · "subarray sum equals K" · repeated interval aggregation |
| **Binary Search** (5) | Halving over ANY monotonic predicate — not just sorted arrays | Sorted/rotated input · "minimize the maximum" · answer space is monotonic (Koko) |
| **Matrices** (3) | 2D index arithmetic; often a graph in disguise | Grid traversal/rotation/spiral · if cells have neighbors → it's Family 5 |
**Systems anchor:** prefix sum is a materialized view; sliding window is stream processing with an eviction policy.
## Family 2 — Nodal Linear (linked lists)
*Structure property: O(1) splice, no random access. Everything is pointer surgery.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Linked List** (5) | Three moves cover it all: fast/slow runners, reversal, dummy-head splicing | Cycle detection · middle/Nth-from-end · reverse/reorder · merge |
**Systems anchor:** LRU Cache = hashmap + doubly-linked list — the one hybrid that appears constantly (it's a cache eviction index).
## Family 3 — Auxiliary Ordering Structures (stack, heap)
*Structure property: you don't traverse them — you maintain them while traversing something else.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Stack** (5) | LIFO memory of "unresolved" items; monotonic stack = discard dominated candidates | Matching/nesting (parens) · "next greater element" · "previous smaller" · expression eval |
| **Heap** (5) | Partial order — cheap access to extremum without full sort | "Kth largest/smallest" · "top K" · merge K streams · running median (two heaps) |
**Systems anchor:** monotonic stack ≈ log compaction (drop entries superseded by newer state); heap ≈ priority scheduling / Dijkstra's frontier / timer wheels.
## Family 4 — Hierarchical (trees, tries)
*Structure property: recursive shape — every node roots a subtree. Solutions are recurrences.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on trees** (part of 13) | Post/pre/in-order recursion; answer composed from subtree answers | "Max depth / diameter / LCA / validate" · anything defined recursively |
| **BFS on trees** (part of 8) | Level-order via queue | "Level by level" · "right side view" · minimum depth |
| **Trie** (2) | Character-indexed tree; shared prefixes = shared paths | Prefix search · autocomplete · word dictionaries · many-string matching |
| **BST specifically** | Sorted array in tree form — in-order traversal IS sorted order | "Kth smallest in BST" · range queries · validate |
**Systems anchor:** trie ≈ radix routing table / IPLD path resolution; BST invariant ≈ index B-tree.
## Family 5 — Relational (graphs)
*Structure property: arbitrary edges; must track visited. Trees are just acyclic connected graphs — same traversals, plus bookkeeping.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on graphs** (13) | Exhaustive reachability; recursion + visited set | Islands/regions/flood fill · connectivity · cycle detection (directed: 3-color) |
| **BFS on graphs** (8) | Frontier expansion → **shortest path in unweighted graphs, always** | "Minimum steps/moves" · multi-source spread (rotting oranges) · word ladder |
| **Graphs** (6): Topological sort | DFS post-order reversed / Kahn's in-degree queue over a DAG | Dependencies · prerequisites · build order · "valid ordering exists?" |
| **Graphs** (6): Union-Find | Incremental connectivity without traversal | Dynamic "same component?" queries · redundant edge · counting components |
**Systems anchor:** topo sort = dependency resolution (your Turborepo build graph); union-find = partition detection; BFS = gossip propagation. A matrix with neighbor-moves is ALWAYS this family, not Family 1.
## Family 6 — Decision-Space (implicit graphs you build while exploring)
*Structure property: nodes are STATES, not data. The structure doesn't exist until you walk it.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Backtracking** (6) | DFS over the state tree with undo; exhaustive enumeration | "All subsets/permutations/combinations" · constraint satisfaction · "generate all valid X" |
| **Dynamic Programming** (10) | Backtracking + memoization — overlapping subproblems collapse the exponential tree | "Count ways" · "min/max cost to reach" · choices with shared substructure · optimal substructure |
| **Greedy** (5) | DP where the local optimum provably suffices — no memo needed | Sort-then-commit works · exchange argument holds · intervals scheduling · jump game |
**Systems anchor:** DP memo = idempotency cache over a deterministic state machine; backtracking = saga with compensating undo; greedy = eventually-consistent local decisions that provably converge.
---
## The Recognition Decision Tree (run this in the first 2 minutes — rubric axis #1)
1. **Contiguous array/string, no neighbor semantics?** → Family 1. Sorted or monotonic answer space → Binary Search. Pair/window constraint → Two/Sliding. Range sums → Prefix.
2. **Nodes with next-pointers?** → Family 2. Reach for fast/slow or dummy-head before anything clever.
3. **Need "next greater," nesting, or top-K while scanning?** → Family 3 auxiliary structure on top of whatever you're traversing.
4. **Recursive shape (tree/prefix data)?** → Family 4. Ask: does the answer compose from subtrees (DFS) or from levels (BFS)?
5. **Arbitrary connections, grids with movement, dependencies?** → Family 5. Unweighted shortest = BFS. Ordering over DAG = topo. Dynamic connectivity = union-find. Otherwise DFS.
6. **Enumerate or optimize over CHOICES?** → Family 6. All solutions → backtracking. Overlapping subproblems → DP. Provable local choice → greedy.
## The Escalation Lattice (when stuck, patterns upgrade along these edges)
- Two Pointers —*add state*→ Sliding Window —*add aggregation*→ Prefix Sum
- Brute-force scan —*monotonic predicate*→ Binary Search on answer
- Tree DFS —*add visited set*→ Graph DFS —*add undo*→ Backtracking —*add memo*→ DP —*add proof*→ Greedy
- Sort —*need only extremum*→ Heap —*need running extremes*→ Monotonic Stack
- BFS —*add weights*→ Dijkstra (= BFS with a heap: Families 3+5 composed)
Memorize the lattice, not 16 patterns. In the interview, naming the family out loud ("this is a state-space problem, so backtracking or DP depending on overlap") IS the recognition signal the rubric scores.
@@ -0,0 +1,10 @@
---
title: 'Binary Search'
description: 'Halving over any monotonic predicate, not just sorted arrays.'
sidebar:
order: 5
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,21 @@
---
title: 'Contiguous Linear'
description: 'O(1) index access, order is information.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [Two Pointers](/guides/coding/contiguous-linear/two-pointers) — Converging/parallel index walk that prunes the O(n^2) pair space using order.
- [Sliding Window](/guides/coding/contiguous-linear/sliding-window) — Two pointers plus incremental state between them.
- [Prefix Sum](/guides/coding/contiguous-linear/prefix-sum) — Precomputed cumulative state for O(1) range queries.
- [Binary Search](/guides/coding/contiguous-linear/binary-search) — Halving over any monotonic predicate, not just sorted arrays.
- [Matrices](/guides/coding/contiguous-linear/matrices) — 2D index arithmetic; often a graph in disguise.
**Systems anchor:** Prefix sum is a materialized view; sliding window is stream processing with an eviction policy.
@@ -0,0 +1,10 @@
---
title: 'Matrices'
description: '2D index arithmetic; often a graph in disguise.'
sidebar:
order: 6
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 4,
});
@@ -0,0 +1,10 @@
---
title: 'Prefix Sum'
description: 'Precomputed cumulative state for O(1) range queries.'
sidebar:
order: 4
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Sliding Window'
description: 'Two pointers plus incremental state between them.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Two Pointers'
description: 'Converging/parallel index walk that prunes the O(n^2) pair space using order.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,17 @@
---
title: 'Nodal Linear'
description: 'O(1) splice, no random access. Everything is pointer surgery.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [Linked List](/guides/coding/nodal-linear/linked-list) — Fast/slow runners, reversal, and dummy-head splicing cover it all.
**Systems anchor:** LRU cache = hashmap + doubly-linked list, the one hybrid that appears constantly.
@@ -0,0 +1,10 @@
---
title: 'Linked List'
description: 'Fast/slow runners, reversal, and dummy-head splicing cover it all.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 5,
});
@@ -0,0 +1,10 @@
---
title: 'Heap'
description: 'Partial order: cheap access to the extremum without a full sort.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,18 @@
---
title: 'Auxiliary Ordering Structures'
description: 'You do not traverse them; you maintain them while traversing something else.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [Stack](/guides/coding/auxiliary-ordering/stack) — LIFO memory of unresolved items; monotonic stack discards dominated candidates.
- [Heap](/guides/coding/auxiliary-ordering/heap) — Partial order: cheap access to the extremum without a full sort.
**Systems anchor:** Monotonic stack is log compaction; heap is priority scheduling, Dijkstra's frontier, timer wheels.
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 6,
});
@@ -0,0 +1,10 @@
---
title: 'Stack'
description: 'LIFO memory of unresolved items; monotonic stack discards dominated candidates.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Binary Search Tree'
description: 'A sorted array in tree form: in-order traversal is sorted order.'
sidebar:
order: 5
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,20 @@
---
title: 'Hierarchical'
description: 'Recursive shape: every node roots a subtree. Solutions are recurrences.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [DFS on Trees](/guides/coding/hierarchical/tree-dfs) — Post/pre/in-order recursion; the answer composes from subtree answers.
- [BFS on Trees](/guides/coding/hierarchical/tree-bfs) — Level-order traversal via a queue.
- [Trie](/guides/coding/hierarchical/trie) — Character-indexed tree; shared prefixes are shared paths.
- [Binary Search Tree](/guides/coding/hierarchical/binary-search-tree) — A sorted array in tree form: in-order traversal is sorted order.
**Systems anchor:** Trie is a radix routing table / IPLD path resolution; the BST invariant is a B-tree index.
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 7,
});
@@ -0,0 +1,10 @@
---
title: 'BFS on Trees'
description: 'Level-order traversal via a queue.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'DFS on Trees'
description: 'Post/pre/in-order recursion; the answer composes from subtree answers.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Trie'
description: 'Character-indexed tree; shared prefixes are shared paths.'
sidebar:
order: 4
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'BFS on Graphs'
description: 'Frontier expansion: shortest path in unweighted graphs, always.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'DFS on Graphs'
description: 'Exhaustive reachability: recursion plus a visited set.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,20 @@
---
title: 'Relational'
description: 'Arbitrary edges; you must track visited. Trees are acyclic connected graphs with less bookkeeping.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [DFS on Graphs](/guides/coding/relational/graph-dfs) — Exhaustive reachability: recursion plus a visited set.
- [BFS on Graphs](/guides/coding/relational/graph-bfs) — Frontier expansion: shortest path in unweighted graphs, always.
- [Topological Sort](/guides/coding/relational/topological-sort) — Reversed DFS post-order, or Kahn's in-degree queue over a DAG.
- [Union-Find](/guides/coding/relational/union-find) — Incremental connectivity without traversal.
**Systems anchor:** Topological sort is dependency resolution; union-find is partition detection; BFS is gossip propagation.
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 8,
});
@@ -0,0 +1,10 @@
---
title: 'Topological Sort'
description: "Reversed DFS post-order, or Kahn's in-degree queue over a DAG."
sidebar:
order: 4
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Union-Find'
description: 'Incremental connectivity without traversal.'
sidebar:
order: 5
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Backtracking'
description: 'DFS over the state tree with undo; exhaustive enumeration.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Dynamic Programming'
description: 'Backtracking plus memoization over overlapping subproblems.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,10 @@
---
title: 'Greedy'
description: 'DP where the local optimum provably suffices, so no memo is needed.'
sidebar:
order: 4
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
@@ -0,0 +1,19 @@
---
title: 'Decision-Space'
description: 'Nodes are states, not data. The structure does not exist until you walk it.'
sidebar:
order: 1
label: Introduction
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Patterns
- [Backtracking](/guides/coding/decision-space/backtracking) — DFS over the state tree with undo; exhaustive enumeration.
- [Dynamic Programming](/guides/coding/decision-space/dynamic-programming) — Backtracking plus memoization over overlapping subproblems.
- [Greedy](/guides/coding/decision-space/greedy) — DP where the local optimum provably suffices, so no memo is needed.
**Systems anchor:** DP memo is an idempotency cache; backtracking is a saga with compensating undo; greedy is local decisions that converge.
@@ -0,0 +1,5 @@
import { defineMeta } from "blume";
export default defineMeta({
order: 9,
});
@@ -0,0 +1,96 @@
---
title: 'Coding'
description: 'There are only 6 structural families. Every pattern is a traversal or maintenance strategy over one of them.'
sidebar:
label: Overview
order: 1
---
## Family 1 — Contiguous Linear (arrays, strings)
*Structure property: O(1) index access, order is information.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Two Pointers** (7) | Converging/parallel index walk that prunes the O(n²) pair space using order | Sorted input · pair/triplet with target · palindrome · in-place partition |
| **Sliding Window** (5) | Two pointers + incremental state between them (Two Pointers with a payload) | "Longest/shortest substring/subarray with property X" · contiguous constraint |
| **Prefix Sum** (2) | Precomputed cumulative state → O(1) range queries | "Sum of range" · "subarray sum equals K" · repeated interval aggregation |
| **Binary Search** (5) | Halving over ANY monotonic predicate — not just sorted arrays | Sorted/rotated input · "minimize the maximum" · answer space is monotonic (Koko) |
| **Matrices** (3) | 2D index arithmetic; often a graph in disguise | Grid traversal/rotation/spiral · if cells have neighbors → it's Family 5 |
**Systems anchor:** prefix sum is a materialized view; sliding window is stream processing with an eviction policy.
## Family 2 — Nodal Linear (linked lists)
*Structure property: O(1) splice, no random access. Everything is pointer surgery.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Linked List** (5) | Three moves cover it all: fast/slow runners, reversal, dummy-head splicing | Cycle detection · middle/Nth-from-end · reverse/reorder · merge |
**Systems anchor:** LRU Cache = hashmap + doubly-linked list — the one hybrid that appears constantly (it's a cache eviction index).
## Family 3 — Auxiliary Ordering Structures (stack, heap)
*Structure property: you don't traverse them — you maintain them while traversing something else.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Stack** (5) | LIFO memory of "unresolved" items; monotonic stack = discard dominated candidates | Matching/nesting (parens) · "next greater element" · "previous smaller" · expression eval |
| **Heap** (5) | Partial order — cheap access to extremum without full sort | "Kth largest/smallest" · "top K" · merge K streams · running median (two heaps) |
**Systems anchor:** monotonic stack ≈ log compaction (drop entries superseded by newer state); heap ≈ priority scheduling / Dijkstra's frontier / timer wheels.
## Family 4 — Hierarchical (trees, tries)
*Structure property: recursive shape — every node roots a subtree. Solutions are recurrences.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on trees** (part of 13) | Post/pre/in-order recursion; answer composed from subtree answers | "Max depth / diameter / LCA / validate" · anything defined recursively |
| **BFS on trees** (part of 8) | Level-order via queue | "Level by level" · "right side view" · minimum depth |
| **Trie** (2) | Character-indexed tree; shared prefixes = shared paths | Prefix search · autocomplete · word dictionaries · many-string matching |
| **BST specifically** | Sorted array in tree form — in-order traversal IS sorted order | "Kth smallest in BST" · range queries · validate |
**Systems anchor:** trie ≈ radix routing table / IPLD path resolution; BST invariant ≈ index B-tree.
## Family 5 — Relational (graphs)
*Structure property: arbitrary edges; must track visited. Trees are just acyclic connected graphs — same traversals, plus bookkeeping.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **DFS on graphs** (13) | Exhaustive reachability; recursion + visited set | Islands/regions/flood fill · connectivity · cycle detection (directed: 3-color) |
| **BFS on graphs** (8) | Frontier expansion → **shortest path in unweighted graphs, always** | "Minimum steps/moves" · multi-source spread (rotting oranges) · word ladder |
| **Graphs** (6): Topological sort | DFS post-order reversed / Kahn's in-degree queue over a DAG | Dependencies · prerequisites · build order · "valid ordering exists?" |
| **Graphs** (6): Union-Find | Incremental connectivity without traversal | Dynamic "same component?" queries · redundant edge · counting components |
**Systems anchor:** topo sort = dependency resolution (your Turborepo build graph); union-find = partition detection; BFS = gossip propagation. A matrix with neighbor-moves is ALWAYS this family, not Family 1.
## Family 6 — Decision-Space (implicit graphs you build while exploring)
*Structure property: nodes are STATES, not data. The structure doesn't exist until you walk it.*
| Pattern | What it really is | Recognition triggers |
|---|---|---|
| **Backtracking** (6) | DFS over the state tree with undo; exhaustive enumeration | "All subsets/permutations/combinations" · constraint satisfaction · "generate all valid X" |
| **Dynamic Programming** (10) | Backtracking + memoization — overlapping subproblems collapse the exponential tree | "Count ways" · "min/max cost to reach" · choices with shared substructure · optimal substructure |
| **Greedy** (5) | DP where the local optimum provably suffices — no memo needed | Sort-then-commit works · exchange argument holds · intervals scheduling · jump game |
**Systems anchor:** DP memo = idempotency cache over a deterministic state machine; backtracking = saga with compensating undo; greedy = eventually-consistent local decisions that provably converge.
---
## The Recognition Decision Tree (run this in the first 2 minutes — rubric axis #1)
1. **Contiguous array/string, no neighbor semantics?** → Family 1. Sorted or monotonic answer space → Binary Search. Pair/window constraint → Two/Sliding. Range sums → Prefix.
2. **Nodes with next-pointers?** → Family 2. Reach for fast/slow or dummy-head before anything clever.
3. **Need "next greater," nesting, or top-K while scanning?** → Family 3 auxiliary structure on top of whatever you're traversing.
4. **Recursive shape (tree/prefix data)?** → Family 4. Ask: does the answer compose from subtrees (DFS) or from levels (BFS)?
5. **Arbitrary connections, grids with movement, dependencies?** → Family 5. Unweighted shortest = BFS. Ordering over DAG = topo. Dynamic connectivity = union-find. Otherwise DFS.
6. **Enumerate or optimize over CHOICES?** → Family 6. All solutions → backtracking. Overlapping subproblems → DP. Provable local choice → greedy.
## The Escalation Lattice (when stuck, patterns upgrade along these edges)
- Two Pointers —*add state*→ Sliding Window —*add aggregation*→ Prefix Sum
- Brute-force scan —*monotonic predicate*→ Binary Search on answer
- Tree DFS —*add visited set*→ Graph DFS —*add undo*→ Backtracking —*add memo*→ DP —*add proof*→ Greedy
- Sort —*need only extremum*→ Heap —*need running extremes*→ Monotonic Stack
- BFS —*add weights*→ Dijkstra (= BFS with a heap: Families 3+5 composed)
Memorize the lattice, not 16 patterns. In the interview, naming the family out loud ("this is a state-space problem, so backtracking or DP depending on overlap") IS the recognition signal the rubric scores.
+9
View File
@@ -0,0 +1,9 @@
import { defineMeta } from "blume";
export default defineMeta({
title: "Coding",
order: 1,
collapsed: true,
icon: "code-xml",
display: "page",
});
@@ -0,0 +1,12 @@
---
title: 'B-Tree Indexes'
description: 'The BST ordering invariant as a database index.'
sidebar:
order: 8
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Hierarchical.
@@ -0,0 +1,12 @@
---
title: 'Cache Eviction'
description: 'LRU cache as a hashmap plus a doubly-linked eviction index.'
sidebar:
order: 4
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Nodal Linear.
@@ -0,0 +1,12 @@
---
title: 'Dependency Resolution'
description: 'Topological sort as build-graph and package resolution.'
sidebar:
order: 9
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Relational.
@@ -0,0 +1,12 @@
---
title: 'Eventual Consistency'
description: 'Greedy local decisions that provably converge.'
sidebar:
order: 14
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Decision-Space.
@@ -0,0 +1,12 @@
---
title: 'Gossip Propagation'
description: 'BFS frontier expansion as epidemic broadcast.'
sidebar:
order: 11
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Relational.
@@ -0,0 +1,12 @@
---
title: 'Idempotency Caches'
description: 'A DP memo as an idempotency cache over a deterministic state machine.'
sidebar:
order: 12
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Decision-Space.
@@ -0,0 +1,27 @@
---
title: 'System Design'
description: 'The systems anchor behind each coding family: the same structure, at production scale.'
sidebar:
order: 1
label: Overview
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Systems anchors
- [Materialized Views](/guides/system-design/materialized-views) — Prefix sum as a precomputed, read-optimized projection. *(Contiguous Linear)*
- [Stream Processing](/guides/system-design/stream-processing) — Sliding window as a bounded stream with an eviction policy. *(Contiguous Linear)*
- [Cache Eviction](/guides/system-design/cache-eviction) — LRU cache as a hashmap plus a doubly-linked eviction index. *(Nodal Linear)*
- [Log Compaction](/guides/system-design/log-compaction) — Monotonic stack as dropping entries superseded by newer state. *(Auxiliary Ordering)*
- [Priority Scheduling](/guides/system-design/priority-scheduling) — Heaps behind schedulers, Dijkstra's frontier, and timer wheels. *(Auxiliary Ordering)*
- [Radix Routing Tables](/guides/system-design/radix-routing-tables) — Tries behind routing tables and IPLD path resolution. *(Hierarchical)*
- [B-Tree Indexes](/guides/system-design/btree-indexes) — The BST ordering invariant as a database index. *(Hierarchical)*
- [Dependency Resolution](/guides/system-design/dependency-resolution) — Topological sort as build-graph and package resolution. *(Relational)*
- [Partition Detection](/guides/system-design/partition-detection) — Union-find as dynamic connectivity across a cluster. *(Relational)*
- [Gossip Propagation](/guides/system-design/gossip-propagation) — BFS frontier expansion as epidemic broadcast. *(Relational)*
- [Idempotency Caches](/guides/system-design/idempotency-caches) — A DP memo as an idempotency cache over a deterministic state machine. *(Decision-Space)*
- [Sagas and Compensation](/guides/system-design/sagas-and-compensation) — Backtracking as a saga with compensating undo. *(Decision-Space)*
- [Eventual Consistency](/guides/system-design/eventual-consistency) — Greedy local decisions that provably converge. *(Decision-Space)*
@@ -0,0 +1,12 @@
---
title: 'Log Compaction'
description: 'Monotonic stack as dropping entries superseded by newer state.'
sidebar:
order: 5
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Auxiliary Ordering.
@@ -0,0 +1,12 @@
---
title: 'Materialized Views'
description: 'Prefix sum as a precomputed, read-optimized projection.'
sidebar:
order: 2
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Contiguous Linear.
@@ -0,0 +1,9 @@
import { defineMeta } from "blume";
export default defineMeta({
title: "System Design",
order: 2,
collapsed: true,
icon: "monitor-cog",
display: "page",
});
@@ -0,0 +1,12 @@
---
title: 'Partition Detection'
description: 'Union-find as dynamic connectivity across a cluster.'
sidebar:
order: 10
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Relational.
@@ -0,0 +1,12 @@
---
title: 'Priority Scheduling'
description: "Heaps behind schedulers, Dijkstra's frontier, and timer wheels."
sidebar:
order: 6
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Auxiliary Ordering.
@@ -0,0 +1,12 @@
---
title: 'Radix Routing Tables'
description: 'Tries behind routing tables and IPLD path resolution.'
sidebar:
order: 7
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Hierarchical.
@@ -0,0 +1,12 @@
---
title: 'Sagas and Compensation'
description: 'Backtracking as a saga with compensating undo.'
sidebar:
order: 13
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Decision-Space.
@@ -0,0 +1,12 @@
---
title: 'Stream Processing'
description: 'Sliding window as a bounded stream with an eviction policy.'
sidebar:
order: 3
---
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
**Coding family:** Contiguous Linear.
@@ -0,0 +1,9 @@
import { defineMeta } from "blume";
export default defineMeta({
title: "Behavioral",
order: 3,
collapsed: true,
icon: "handshake",
display: "page",
});
View File
+55
View File
@@ -0,0 +1,55 @@
---
title: 'Week 1'
description: 'Foundations. Learn arrays, hashing, two pointers, and the stack. Start the daily method and the rubric.'
sidebar:
icon: footprints
---
**August 1723, 2026.** Build the base patterns. Start the daily method. Score every timed problem.
## Goals
- [ ] Learn the base patterns: arrays, hashing, prefix sum, two pointers, and the stack.
- [ ] Solve 18 A-set problems under the clock and out loud.
- [ ] Score every timed problem on the five rubric axes.
- [ ] Write and rehearse stories 1 to 3.
- [ ] Send 4 applications.
## Daily schedule
| Day | Concept — B1 (untimed) | Timed problems — B2 and B-set | Track B — B4 | Behavioral and pipeline — B5 |
|---|---|---|---|---|
| Mon | Arrays and hashing fundamentals | Contains Duplicate, Valid Anagram, Two Sum, Group Anagrams (4) | Read the System Design Delivery Framework | Check the resume against the stories. Use **$4.7M** and **120+ developers**. |
| Tue | Hashing and prefix sum (2 walkthroughs) | Top K Frequent Elements, Product of Array Except Self, Longest Consecutive Sequence, Range Sum Query (4) | Read the Rate Limiter breakdown | Write story 1: the Cosmos-to-Base pivot |
| Wed | Two pointers (7 walkthroughs) | Valid Palindrome, Two Sum II, 3Sum (3). B-set: Monday patterns (+2 days). | Read the Payment System breakdown | Apply to Meta, Google, Databricks, and Netflix |
| Thu | Two pointers, more depth | Container With Most Water, Trapping Rain Water (2). B-set: Tuesday patterns (+2 days). | System design solo rep 1: Rate Limiter (tldraw) | Write story 2: the IP-transfer negotiation |
| Fri | Gate day. Do no new lesson. | 6 random problems from the week, timed. | Review the gate result. | Write story 3: the investor pushback |
| Sat | Stack (5 walkthroughs) | Valid Parentheses, Min Stack, Evaluate RPN, Daily Temperatures, Car Fleet (5). B-set: Monday patterns (+5 days). | System design solo rep 2: Payment System | Audit the camp log |
## Daily blocks
Follow this 10-hour day, six days each week. Keep Sunday off.
| Block | Time | Content |
|---|---|---|
| B1 | 2.0h | Concept layer: today's lesson and all walkthroughs. Use no clock. |
| B2 | 2.5h | A-set: today's NeetCode 150 problems. Time them. Speak out loud. |
| B3 | 1.5h | B-set: every problem due at +2, +5, or +10 days. Time and score each one. |
| B4 | 1.5h | System design or Track B: breakdowns, solo reps, mocks, or practical builds. |
| B5 | 1.0h | Behavioral and pipeline: write stories, rehearse, apply, and send messages. |
| B6 | 0.5h | Miss log: tag each sub-8 result by the axis that failed. Queue tomorrow's B-set. |
| — | 1.0h | Breaks: two 30-minute breaks. Walk, lift, or rest. Use no screens. |
## Friday gate
:::warning[Gate]
Solve 6 random problems from the week under the clock. Pass at 70% or more, each problem at 8/10 or more. If you do not pass, repeat the week. Move the schedule one week later.
:::
## Outputs
- 18 A-set problems, timed.
- About 6 B-set problems.
- 2 system-design solo reps.
- Stories 1 to 3.
- 4 applications.
+43
View File
@@ -0,0 +1,43 @@
---
title: 'Week 2'
description: 'Windows, search, lists, and the first trees. Build the HyperAuth reverse-design walkthrough.'
sidebar:
icon: search
---
**August 2430, 2026.** Add four patterns. Build the HyperAuth reverse-design walkthrough.
## Goals
- [ ] Learn sliding window, binary search, linked lists, and the first trees.
- [ ] Solve 21 A-set problems, timed and out loud.
- [ ] Build the HyperAuth reverse-design walkthrough. Cut it to 10 minutes.
- [ ] Write stories 4 and 5.
## Daily schedule
| Day | Concept — B1 (untimed) | Timed problems — B2 and B-set | Track B — B4 | Behavioral and pipeline — B5 |
|---|---|---|---|---|
| Mon | Sliding window (5 walkthroughs) | Best Time to Buy and Sell Stock, Longest Substring Without Repeating Characters, Longest Repeating Character Replacement (3) + B-set | Read the Ticketmaster breakdown | — |
| Tue | Sliding window, more depth | Permutation in String, Minimum Window Substring, Sliding Window Maximum (3) + B-set | Build the HyperAuth walkthrough, version 1 (30 min) | — |
| Wed | Binary search (5 walkthroughs) | Binary Search, Search a 2D Matrix, Koko Eating Bananas, Search in Rotated Sorted Array, Find Minimum in Rotated Sorted Array (5) + B-set | Cut the walkthrough to 10 minutes. Add one diagram. | — |
| Thu | Linked list (5 walkthroughs) | Reverse Linked List, Merge Two Sorted Lists, Reorder List, Remove Nth Node From End, Linked List Cycle (5) + B-set | System design solo rep 3: the checkpoint drill | Write story 4: a hire that failed |
| Fri | Gate day. Do no new lesson. | 2 random mediums in 40 minutes. | Review the gate result. | Write story 5: onboard 120+ developers |
| Sat | Linked list (hard) and trees (intro) | LRU Cache, Add Two Numbers (2); Invert Binary Tree, Maximum Depth of Binary Tree, Same Tree (3) + B-set | Matrices (3 bonus walkthroughs) | — |
## Daily blocks
Use the same 10-hour day as [Week 1](/schedule/week-1). Keep Sunday off.
## Friday gate
:::warning[Gate]
Solve 2 random mediums in 40 minutes. Pass with 1 clean solve and 1 near solve, each at 7/10 or more. If you do not pass, repeat the week.
:::
## Outputs
- 21 A-set problems, timed.
- About 12 B-set problems.
- The HyperAuth reverse-design walkthrough, built and cut to 10 minutes.
- Stories 4 and 5.
+48
View File
@@ -0,0 +1,48 @@
---
title: 'Week 3'
description: 'Trees, heaps, and tries. Run the first scored mock. Open Track B and the pipeline.'
sidebar:
icon: git-branch
---
**August 31 September 6, 2026.** Finish trees. Add heaps and tries. Run the first scored system-design mock. Open Track B and the pipeline.
## Goals
- [ ] Finish trees. Learn heaps and tries.
- [ ] Run Mock #1 (premium, scored). Reach "lean hire" or better.
- [ ] Build the Stripe test-mode integration.
- [ ] Send 10 investor emails and 6 applications.
## Daily schedule
| Day | Concept — B1 (untimed) | Timed problems — B2 and B-set | Track B — B4 | Behavioral and pipeline — B5 |
|---|---|---|---|---|
| Mon | Trees: BST patterns | Subtree of Another Tree, Lowest Common Ancestor, Binary Tree Level Order, Right Side View, Count Good Nodes (5) + B-set | — | Send 10 investor emails |
| Tue | Trees: hard patterns | Validate BST, Kth Smallest in BST, Construct Tree from Preorder and Inorder (3) + B-set | **Mock #1** (premium) | Apply to Kraken |
| Wed | Heap (5 walkthroughs) | Kth Largest in a Stream, Last Stone Weight, K Closest Points, Kth Largest in an Array (4) + B-set | Build the Mock #1 fix list. Run a patch drill. | Apply to Anchorage, Paxos, and Brex |
| Thu | Heap depth and trie (2 walkthroughs) | Task Scheduler, Find Median from Data Stream; Implement Trie, Word Search II (intro) (4) + B-set | Track B 1: Stripe test-mode integration — payment intent, webhook, and idempotency | Apply to Ramp |
| Fri | Gate day. Do no new lesson. | 2 random mediums, plus review the Mock #1 result. | Review the gate result. | Write story 6: W3C and MIT influence |
| Sat | Buffer: redo red concepts | B-set catch-up: all due and overdue problems | Record all stories out loud, 90 seconds each | Apply to Robinhood |
## Daily blocks
Use the same 10-hour day as [Week 1](/schedule/week-1). Keep Sunday off.
:::tip
Book premium mocks in advance. Slots fill early.
:::
## Friday gate
:::warning[Gate]
Score Mock #1 at "lean hire" or better. Solve 2 random mediums at 8/10 or more. If you do not pass, repeat the week.
:::
## Outputs
- 16 A-set problems, timed.
- A heavy B-set week.
- Mock #1, scored, with a written fix list.
- The Stripe test-mode integration.
- 6 applications and 10 investor emails.
+47
View File
@@ -0,0 +1,47 @@
---
title: 'Week 4'
description: 'DFS, BFS, graphs, and backtracking. Run Mock #2, the take-home, and the screen-unlock gate.'
sidebar:
icon: share-2
---
**September 713, 2026.** Cover the largest block. Run Mock #2 and a live behavioral mock. Do the take-home. Pass the gate that unlocks screens.
## Goals
- [ ] Learn DFS, BFS, graphs, and backtracking.
- [ ] Run Mock #2 and one live behavioral mock.
- [ ] Do the Kraken take-home (4-hour cap) and the first bug-squash.
- [ ] Pass the gate that unlocks screens.
## Daily schedule
| Day | Concept — B1 (untimed) | Timed problems — B2 and B-set | Track B — B4 | Behavioral and pipeline — B5 |
|---|---|---|---|---|
| Mon | DFS (13 walkthroughs, split over 2 days) | Number of Islands, Max Area of Island, Clone Graph (3) + B-set | System design solo rep 4: Distributed Job Scheduler | Send 5 founder messages each day this week |
| Tue | DFS (more) and BFS (8 walkthroughs) | Pacific Atlantic Water Flow, Surrounded Regions, Rotting Oranges, Word Ladder (4) + B-set | **Mock #2** (premium) | Book the week 5 screens |
| Wed | — | Track B 2: Kraken take-home (4-hour cap; Go or Rust). Do the B-set only. | The take-home fills this block. | Submit the take-home |
| Thu | Graphs (6 walkthroughs): topological sort and union-find | Course Schedule I and II, Redundant Connection, Graph Valid Tree (4) + B-set | Live behavioral mock, plus an interruption drill | — |
| Fri | Gate day. Do no new lesson. | 2 random mediums in 40 minutes. Both must be clean. | Bug-squash drill 1: a Go repo with 5 planted bugs, 45 minutes | — |
| Sat | Backtracking (6 walkthroughs) | Subsets, Combination Sum, Permutations, Word Search (4) + B-set | Rehearse the HyperAuth walkthrough with the Mock #2 feedback | Confirm the Robinhood, Ramp, and Brex slots |
## Daily blocks
Use the same 10-hour day as [Week 1](/schedule/week-1). Keep Sunday off.
## Friday gate
:::warning[Gate]
Solve 2 random mediums in 40 minutes. Both must be clean at 8/10 or more. A pass unlocks outreach for screens.
:::
:::note
Book the screens for week 5. Take no screen before September 14. A burned screen means a 6-to-12-month cooldown at that company.
:::
## Outputs
- 15 A-set problems, timed.
- Mock #2, plus one live behavioral mock.
- The Kraken take-home and bug-squash drill 1.
- The gate that unlocks screens.
+47
View File
@@ -0,0 +1,47 @@
---
title: 'Week 5'
description: 'DP, greedy, and intervals. Run Mock #3 at the Staff bar. Start the live screens.'
sidebar:
icon: trending-up
---
**September 1420, 2026.** Add the last patterns. Finish the NeetCode 150 core. Run Mock #3 at the Staff bar. Start the live screens.
## Goals
- [ ] Learn dynamic programming, greedy, and intervals.
- [ ] Finish the NeetCode 150 core (about 140 of 150).
- [ ] Run Mock #3 at the explicit Staff bar.
- [ ] Pass at least one live screen.
## Daily schedule
| Day | Concept — B1 (untimed) | Timed problems — B2 and B-set | Track B — B4 | Behavioral and pipeline — B5 |
|---|---|---|---|---|
| Mon | DP, 1-D (10 walkthroughs, split) | Climbing Stairs, Min Cost Climbing Stairs, House Robber I and II (4) + B-set | **Mock #3** (Staff bar) | Robinhood Karat screen |
| Tue | DP, more | Palindromic Substrings, Decode Ways, Coin Change (3) + B-set | Bug-squash drill 2 | Ramp CodeSignal test |
| Wed | Greedy (5 walkthroughs) | Maximum Subarray, Jump Game I and II, Gas Station (4) + B-set | System design rep 5: Matching Engine with exactly-once accounting | Brex practical screen |
| Thu | Intervals (5 walkthroughs) | Insert Interval, Merge Intervals, Non-Overlapping Intervals, Meeting Rooms I and II (5) + B-set | Ramp-format rep: present 30 minutes, then open design 30 minutes | Kraken code-review call |
| Fri | Gate day. Do no new lesson. | Company-tagged: 3 timed Robinhood problems + B-set | Review the gate result. | Tell the Coinbase recruiter: target IC6. Defer the onsite to week 7. |
| Sat | Buffer: redo red and yellow concepts | Coinbase-tagged: 3 timed exchange problems + B-set catch-up | Build the patch list from the screen feedback | Apply to Stripe, Plaid, and Circle. Ask for a referral first. |
## Daily blocks
Use the same 10-hour day as [Week 1](/schedule/week-1). Keep Sunday off.
## Friday gate
:::warning[Gate]
Pass at least one live screen this week. If no screen passes, repeat the outreach and hold the top-target onsites.
:::
:::danger[Coinbase last]
Interview with Coinbase last. Always. Tell the recruiter that late September works best.
:::
## Outputs
- About 19 A-set and company-tagged problems, timed.
- Mock #3 at the Staff bar.
- Four or more live screens.
- The NeetCode 150 core complete (about 140 of 150).
+46
View File
@@ -0,0 +1,46 @@
---
title: 'Week 6'
description: 'Calibration onsites. Coding drops to maintenance. Mock #4 is the gate.'
sidebar:
icon: target
---
**September 2127, 2026.** Run the calibration onsites. Move coding to maintenance. Pass the Mock #4 gate. This is the week that counts. Do not arrive tired.
## Goals
- [ ] Move coding to maintenance, about 2 hours each day.
- [ ] Run the calibration onsites and absorb the feedback.
- [ ] Pass Mock #4: score "strong hire" twice in a row.
- [ ] Finish bug-squash drill 3.
:::note[Schedule shift]
Coding drops to about 2 hours each day. Merge the A-set and the B-set into one timed block. Spend the rest of the day on the onsites, the mock, and the pipeline.
:::
## Daily schedule
| Day | Coding — about 2h | System design — B4 | Pipeline |
|---|---|---|---|
| Mon | 2 timed Robinhood-tagged problems + all due B-set | Reverse-design rehearsal: defend webhooks against pub/sub, caching, and the database | Schedule the Robinhood onsite |
| Tue | 2 timed mixed problems + B-set | **Mock #4** — the gate | Ramp onsite |
| Wed | Speed drill: 2 mediums in 35 minutes | Polish the weakest 2 stories | Robinhood onsite |
| Thu | 2 timed Coinbase-tagged problems + B-set | Stripe API-design drill: versioning, partial failure, and idempotent retries | Brex values round |
| Fri | Gate day. | Bug-squash drill 3: Stripe format, about 200 lines, 5 to 7 bugs | Stripe, Plaid, and Circle screens |
| Sat | 2 timed mixed problems. Spot-check 3 green concepts. | Targeted reps from the onsite feedback | Confirm week 7: Stripe, Plaid, Circle, and Coinbase (Friday) |
## Friday gate
:::warning[Gate]
Score Mock #4 at "strong hire" twice in a row, counting Mock #3. Finish the calibration onsites. Absorb the feedback. Do not start the top-target onsites until you pass.
:::
:::danger[Coinbase last]
Keep Coinbase last. Confirm the Coinbase onsite for Friday of week 7.
:::
## Outputs
- The calibration onsites, done, with feedback absorbed.
- Mock #4 passed at "strong hire" twice in a row.
- Bug-squash drill 3, done.
+42
View File
@@ -0,0 +1,42 @@
---
title: 'Week 7'
description: 'Top-target onsites. Keep coding light. Coinbase last.'
sidebar:
icon: building-2
---
**September 28 October 4, 2026.** Run the top-target onsites. Keep coding light. Interview with Coinbase last.
## Goals
- [ ] Keep coding light: 1 to 2 timed problems each day.
- [ ] Run the Plaid, Circle, and Stripe onsites.
- [ ] Run the Coinbase onsite on Friday.
- [ ] Rest before each onsite.
:::note[Schedule shift]
Coding stays light this week. Solve 1 to 2 timed problems each day as a warm-up only. Spend the day on onsite prep and the onsites.
:::
## Daily schedule
| Day | Coding — light | Prep — B4 | Pipeline |
|---|---|---|---|
| Mon | 2 timed Coinbase-tagged problems: matching, balance accounting, and event sourcing | Tough-tradeoffs stories, plus Base L2 and AI-fluency prep | Plaid onsite |
| Tue | 2 timed mixed problems | Circle pair-programming warm-up: narrate a live build | Circle onsite |
| Wed | Stripe-format practical only | Integration dry run: an unfamiliar API, 45 minutes | Stripe onsite |
| Thu | 1 timed warm-up problem | Final founder-narrative pass. Sleep early. | — |
| Fri | 1 timed warm-up problem only | — | **Coinbase onsite** |
| Sat | Off | Write the negotiation-lever notes, per company | Tell all loops: "consolidating by October 16" |
## No gate this week
:::danger[Coinbase last]
Interview with Coinbase last. Run the Coinbase onsite on Friday, after the other top targets.
:::
## Outputs
- Onsites at Plaid, Circle, Stripe, and Coinbase.
- The negotiation-lever notes, per company.
- All loops told the decision date: October 16.
+46
View File
@@ -0,0 +1,46 @@
---
title: 'Week 8'
description: 'Close the process. Align deadlines to October 16. Negotiate on parallel offers. Sign.'
sidebar:
icon: handshake
---
**October 516, 2026.** Finish the remaining onsites. Align the deadlines. Negotiate on parallel offers. Sign.
## Goals
- [ ] Finish the remaining onsites: Databricks, Netflix, or Uber, if they are ready.
- [ ] Align every decision deadline to October 16.
- [ ] Negotiate on parallel offers. Disclose that competing offers exist. Never give numbers.
- [ ] Sign the best offer.
## The close, step by step
<Steps>
<Step title="Finish the onsites">Finish any remaining onsites. Solve at most 1 timed problem each day.</Step>
<Step title="Align the deadlines">Align every decision deadline to October 16. Tell every company that this date exists.</Step>
<Step title="Negotiate">Negotiate on parallel offers. Say that competing offers exist. Do not give numbers.</Step>
<Step title="Sign">Sign the best offer.</Step>
</Steps>
## Negotiation levers
Use a different lever at each company.
| Company | Lever |
|---|---|
| Stripe | Sign-on bonus and RSU value |
| Coinbase | Equity and the IC6 level |
| Ramp and Plaid | Equity value |
| Netflix | One number: the cash mix |
| Uber and Meta | A written offer against a downlevel |
:::tip
Leverage comes from parallel offers, not from arguments. An exploding offer from the calibration tier is a tool. Use it to compress the core tier. Do not take it out of fear.
:::
## Outputs
- The remaining onsites, done.
- Every deadline aligned to October 16.
- A signed offer, negotiated on parallel offers.
@@ -1,8 +1,8 @@
--- ---
title: FAQ title: About
description: Common questions about Blume — how it compares to other documentation tools, and why a Markdown formatter might collapse your callout directives. description: Common questions about Blume — how it compares to other documentation tools, and why a Markdown formatter might collapse your callout directives.
sidebar: sidebar:
label: FAQ icon: heart
--- ---
Answers to questions that come up often. Missing one? [Open an issue](https://github.com/haydenbleasel/blume/issues) or ask the in-page assistant. Answers to questions that come up often. Missing one? [Open an issue](https://github.com/haydenbleasel/blume/issues) or ask the in-page assistant.
@@ -1,14 +0,0 @@
---
title: 'Two Pointers'
sidebar:
label: Overview
icon: arrow-right-circle
badge: Easy
order: 1
---
## Description
Given two integer arrays `nums1` and `nums2`, return the minimum number of operations required to make both arrays equal.
You have the following three choices to modify two arrays:
+8 -2
View File
@@ -1,10 +1,16 @@
--- ---
title: Introduction title: Goals
description: Welcome to your new Blume docs. description: Welcome to your new Blume docs.
sidebar:
icon: play
--- ---
# Introduction ## Coding Patterns
Welcome to **Blume** — markdown-first docs powered by Astro and Vite. Welcome to **Blume** — markdown-first docs powered by Astro and Vite.
## System Design
Edit `content/index.mdx` to get started, then run `blume dev`. Edit `content/index.mdx` to get started, then run `blume dev`.
## Behavioral
-13
View File
@@ -1,13 +0,0 @@
---
title: 'Coding'
sidebar:
label: Overview
icon: arrow-right-circle
order: 1
---
## Description
Given two integer arrays `nums1` and `nums2`, return the minimum number of operations required to make both arrays equal.
You have the following three choices to modify two arrays:
Binary file not shown.