diff --git a/README.md b/README.md
index d0636c3..6bcaef1 100644
--- a/README.md
+++ b/README.md
@@ -7,12 +7,281 @@
-## Overview
-
-Relevant problems for myself
-
-- 🎨 Guides
-- ⚡ Solutions
-- ♿ Patterns
-
+## Phase I — Linear Structures (Week 1)
+
+### 1. Hash-Based Lookup — builds on nothing
+| Set | LC # | Problem |
+|---|---|---|
+| A | 217 | Contains Duplicate |
+| A | 242 | Valid Anagram |
+| A | 1 | Two Sum |
+| A | 49 | Group Anagrams |
+| A | 347 | Top K Frequent Elements |
+| B | 383 | Ransom Note |
+| B | 205 | Isomorphic Strings |
+| B | 128 | Longest Consecutive Sequence |
+| B | 290 | Word Pattern |
+
+### 2. Prefix Sum — builds on 1
+| Set | LC # | Problem |
+|---|---|---|
+| A | 303 | Range Sum Query |
+| A | 238 | Product of Array Except Self |
+| A | 560 | Subarray Sum Equals K |
+| B | 525 | Contiguous Array |
+| B | 974 | Subarray Sums Divisible by K |
+
+### 3. Two Pointers — builds on ordered iteration
+| Set | LC # | Problem |
+|---|---|---|
+| A | 125 | Valid Palindrome |
+| A | 167 | Two Sum II |
+| A | 15 | 3Sum |
+| A | 11 | Container With Most Water |
+| A | 42 | Trapping Rain Water |
+| B | 392 | Is Subsequence |
+| B | 977 | Squares of a Sorted Array |
+| B | 189 | Rotate Array |
+| B | 80 | Remove Duplicates II |
+
+### 4. Sliding Window — builds on 3
+| Set | LC # | Problem |
+|---|---|---|
+| A | 121 | Best Time to Buy and Sell Stock |
+| A | 3 | Longest Substring Without Repeating Characters |
+| A | 424 | Longest Repeating Character Replacement |
+| A | 567 | Permutation in String |
+| A | 76 | Minimum Window Substring |
+| B | 209 | Minimum Size Subarray Sum |
+| B | 1004 | Max Consecutive Ones III |
+| B | 643 | Maximum Average Subarray |
+
+### 5. Binary Search — builds on ordered/monotonic invariants
+| Set | LC # | Problem |
+|---|---|---|
+| A | 704 | Binary Search |
+| A | 74 | Search a 2D Matrix |
+| A | 875 | Koko Eating Bananas |
+| A | 33 | Search in Rotated Sorted Array |
+| A | 153 | Find Minimum in Rotated Sorted Array |
+| B | 35 | Search Insert Position |
+| B | 162 | Find Peak Element |
+| B | 34 | First & Last Position |
+| B ⭐ | 4 | Median of Two Sorted Arrays |
+
+### 6. Stack — independent primitive
+| Set | LC # | Problem |
+|---|---|---|
+| A | 20 | Valid Parentheses |
+| A | 155 | Min Stack |
+| A | 150 | Evaluate Reverse Polish Notation |
+| B | 71 | Simplify Path |
+| B ⭐ | 224 | Basic Calculator |
+
+### 7. Monotonic Stack — builds on 6
+| Set | LC # | Problem |
+|---|---|---|
+| A | 739 | Daily Temperatures |
+| A | 853 | Car Fleet |
+| B | 496 | Next Greater Element I |
+| B | 901 | Online Stock Span |
+| B ⭐ | 84 | Largest Rectangle in Histogram |
+
+---
+
+## Phase II — Nodal & Grid Structures (Week 2)
+
+### 8. Linked List — independent primitive
+| Set | LC # | Problem |
+|---|---|---|
+| A | 206 | Reverse Linked List |
+| A | 21 | Merge Two Sorted Lists |
+| A | 141 | Linked List Cycle |
+| A | 19 | Remove Nth Node From End |
+| A | 143 | Reorder List |
+| B | 876 | Middle of the Linked List |
+| B | 92 | Reverse Linked List II |
+| B | 82 | Remove Duplicates from Sorted List II |
+| B | 61 | Rotate List |
+| B | 86 | Partition List |
+
+### 9. Hybrid Structures — builds on 1 + 8
+| Set | LC # | Problem |
+|---|---|---|
+| A | 146 | LRU Cache |
+| A | 2 | Add Two Numbers |
+| B | 138 | Copy List with Random Pointer |
+| B | 380 | Insert Delete GetRandom O(1) |
+
+### 10. Matrix Index Math — builds on 3
+| Set | LC # | Problem |
+|---|---|---|
+| A | 48 | Rotate Image |
+| A | 54 | Spiral Matrix |
+| A | 73 | Set Matrix Zeroes |
+| B | 36 | Valid Sudoku |
+| B | 289 | Game of Life |
+
+---
+
+## Phase III — Hierarchical Structures (Week 3)
+
+### 11. Tree DFS — builds on recursion
+| Set | LC # | Problem |
+|---|---|---|
+| A | 226 | Invert Binary Tree |
+| A | 104 | Maximum Depth of Binary Tree |
+| A | 100 | Same Tree |
+| A | 572 | Subtree of Another Tree |
+| A | 236 | Lowest Common Ancestor |
+| A ⭐ | 124 | Binary Tree Maximum Path Sum |
+| B | 101 | Symmetric Tree |
+| B | 112 | Path Sum |
+| B | 129 | Sum Root to Leaf Numbers |
+| B | 543 | Diameter of Binary Tree |
+
+### 12. Tree BFS — builds on 6's sibling (queue) + 11
+| Set | LC # | Problem |
+|---|---|---|
+| A | 102 | Level Order Traversal |
+| A | 199 | Right Side View |
+| A | 1448 | Count Good Nodes |
+| B | 103 | Zigzag Level Order |
+| B | 637 | Average of Levels |
+
+### 13. Binary Search Tree — builds on 5 + 11
+| Set | LC # | Problem |
+|---|---|---|
+| A | 98 | Validate BST |
+| A | 230 | Kth Smallest in BST |
+| A | 235 | LCA of BST |
+| A | 105 | Build from Preorder + Inorder |
+| B | 530 | Minimum Absolute Difference |
+| B | 173 | BST Iterator |
+| B | 108 | Sorted Array to BST |
+
+### 14. Heap / Priority Queue — builds on trees (implicit tree over array)
+| Set | LC # | Problem |
+|---|---|---|
+| A | 215 | Kth Largest in Array |
+| A | 703 | Kth Largest in Stream |
+| A | 973 | K Closest Points |
+| A | 621 | Task Scheduler |
+| A | 23 | Merge K Sorted Lists |
+| B | 1046 | Last Stone Weight |
+| B | 373 | K Pairs with Smallest Sums |
+| B ⭐ | 295 | Find Median from Data Stream |
+| B ⭐ | 502 | IPO |
+
+### 15. Trie — builds on 11
+| Set | LC # | Problem |
+|---|---|---|
+| A | 208 | Implement Trie |
+| A | 211 | Add & Search Words |
+| B | 212 | Word Search II *(needs topic 20 — schedule after)* |
+
+---
+
+## Phase IV — Relational Structures (Week 4)
+
+### 16. Graph DFS — builds on 11 + visited set
+| Set | LC # | Problem |
+|---|---|---|
+| A | 200 | Number of Islands |
+| A | 695 | Max Area of Island |
+| A | 133 | Clone Graph |
+| A | 417 | Pacific Atlantic Water Flow |
+| A | 130 | Surrounded Regions |
+| B | 399 | Evaluate Division |
+| B | 261 | Graph Valid Tree |
+
+### 17. Graph BFS — builds on 12 + visited set
+| Set | LC # | Problem |
+|---|---|---|
+| A | 994 | Rotting Oranges |
+| A | 127 | Word Ladder |
+| B | 909 | Snakes and Ladders |
+| B | 433 | Minimum Genetic Mutation |
+| B | 286 | Walls and Gates |
+
+### 18. Topological Sort — builds on 16
+| Set | LC # | Problem |
+|---|---|---|
+| A | 207 | Course Schedule |
+| A | 210 | Course Schedule II |
+| B ⭐ | 269 | Alien Dictionary |
+| B | 1462 | Course Schedule IV |
+
+### 19. Union-Find — builds on 16's problem class
+| Set | LC # | Problem |
+|---|---|---|
+| A | 684 | Redundant Connection |
+| A | 323 | Number of Connected Components |
+| B | 128 | Longest Consecutive (union-find variant) |
+| B | 721 | Accounts Merge |
+
+---
+
+## Phase V — Decision-Space Exploration (Weeks 4–5)
+
+### 20. Backtracking — builds on 16
+| Set | LC # | Problem |
+|---|---|---|
+| A | 78 | Subsets |
+| A | 39 | Combination Sum |
+| A | 46 | Permutations |
+| A | 79 | Word Search |
+| B | 17 | Letter Combinations |
+| B | 77 | Combinations |
+| B | 22 | Generate Parentheses |
+| B ⭐ | 52 | N-Queens II |
+
+*(Now unlock 212 Word Search II from topic 15.)*
+
+### 21. 1-D Dynamic Programming — builds on 20
+| Set | LC # | Problem |
+|---|---|---|
+| A | 70 | Climbing Stairs |
+| A | 746 | Min Cost Climbing Stairs |
+| A | 198 | House Robber |
+| A | 213 | House Robber II |
+| A | 322 | Coin Change |
+| A | 300 | Longest Increasing Subsequence |
+| B | 139 | Word Break |
+| B | 91 | Decode Ways |
+| B | 647 | Palindromic Substrings |
+
+### 22. Multi-D / Grid DP — builds on 21
+| Set | LC # | Problem |
+|---|---|---|
+| A | 62 | Unique Paths |
+| A | 64 | Minimum Path Sum |
+| A | 1143 | Longest Common Subsequence |
+| B | 120 | Triangle |
+| B | 63 | Unique Paths II |
+| B ⭐ | 72 | Edit Distance |
+| B | 221 | Maximal Square |
+| B ⭐ | 97 | Interleaving String |
+
+### 23. Greedy — builds on 21
+| Set | LC # | Problem |
+|---|---|---|
+| A | 53 | Maximum Subarray (Kadane's) |
+| A | 55 | Jump Game |
+| A | 45 | Jump Game II |
+| A | 134 | Gas Station |
+| B | 122 | Best Time to Buy and Sell Stock II |
+| B | 918 | Maximum Sum Circular Subarray |
+| B | 763 | Partition Labels |
+
+### 24. Intervals — builds on 23
+| Set | LC # | Problem |
+|---|---|---|
+| A | 57 | Insert Interval |
+| A | 56 | Merge Intervals |
+| A | 435 | Non-Overlapping Intervals |
+| A | 253 | Meeting Rooms II |
+| B | 228 | Summary Ranges |
+| B | 452 | Minimum Arrows to Burst Balloons |
+| B | 920 | Meeting Rooms I |
diff --git a/docs/02-arrays-and-strings/meta.ts b/docs/02-arrays-and-strings/meta.ts
deleted file mode 100644
index 119e991..0000000
--- a/docs/02-arrays-and-strings/meta.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { defineMeta } from "blume";
-
-export default defineMeta({
- title: "Arrays & Strings",
- order: 4,
-});
diff --git a/docs/02-arrays-and-strings/01-introduction.mdx b/docs/02-concepts/01-arrays-and-strings.mdx
similarity index 98%
rename from docs/02-arrays-and-strings/01-introduction.mdx
rename to docs/02-concepts/01-arrays-and-strings.mdx
index a1d55ed..99c7e30 100644
--- a/docs/02-arrays-and-strings/01-introduction.mdx
+++ b/docs/02-concepts/01-arrays-and-strings.mdx
@@ -2,8 +2,7 @@
title: 'Arrays and Strings'
description: 'In algorithms, arrays and strings are very similar. They are both ordered collections of elements. The difference is that arrays are mutable, while strings are immutable.'
sidebar:
- icon: play
- label: Introduction
+ label: Arrays & Strings
---
diff --git a/docs/02-concepts/02-hashing.mdx b/docs/02-concepts/02-hashing.mdx
new file mode 100644
index 0000000..d817e1e
--- /dev/null
+++ b/docs/02-concepts/02-hashing.mdx
@@ -0,0 +1,32 @@
+---
+title: 'Hashing'
+description: 'In algorithms, arrays and strings are very similar. They are both ordered collections of elements. The difference is that arrays are mutable, while strings are immutable.'
+sidebar:
+ label: Hashing
+---
+
+
+Technically, an array can't be resized. A dynamic array, or list, can be. In the context of algorithm problems, usually when people talk about arrays, they are referring to dynamic arrays. In this entire course, we will be talking about dynamic arrays/lists, but we will just use the word "array".
+
+## Time Complexity
+
+Arrays and strings are both ordered collections of elements. The difference is that arrays are mutable, while strings are immutable.
+
+| Operation | Array/List | String(Immutable) |
+| --------- | ---------- | ----------------- |
+| Appending to end | *O(1) | O(n) |
+| Popping from end | O(1) | O(n) |
+| Insertion, not from end | O(n) | O(n) |
+| Deletion, not from end | O(n) | O(n) |
+| Modifying an element | O(1) | O(n) |
+| Random access | *O(1) | O(n) |
+| Checking if an element exists | O(1) | O(n) |
+
+:::note[Clarification 1]
+Appending to the end of a list is amortized O(1) time complexity. This means that the time complexity of appending to the end of a list is the same as the time complexity of appending to the end of an array.
+:::
+
+:::note[Clarification 2]
+Random access in this context means that you can access an element at any index in constant time.
+:::
+
diff --git a/docs/02-arrays-and-strings/02-two-pointers.mdx b/docs/03-guides/02-two-pointers.mdx
similarity index 94%
rename from docs/02-arrays-and-strings/02-two-pointers.mdx
rename to docs/03-guides/02-two-pointers.mdx
index f1bdf95..44c266d 100644
--- a/docs/02-arrays-and-strings/02-two-pointers.mdx
+++ b/docs/03-guides/02-two-pointers.mdx
@@ -1,8 +1,6 @@
---
title: 'Two Pointers'
description: 'Converging/parallel index walk that prunes the O(n^2) pair space using order.'
-sidebar:
- icon: sticky-note
---
:::warning[Under construction]
diff --git a/docs/02-arrays-and-strings/04-prefix-sum.mdx b/docs/03-guides/03-prefix-sum.mdx
similarity index 88%
rename from docs/02-arrays-and-strings/04-prefix-sum.mdx
rename to docs/03-guides/03-prefix-sum.mdx
index b461214..1bb054f 100644
--- a/docs/02-arrays-and-strings/04-prefix-sum.mdx
+++ b/docs/03-guides/03-prefix-sum.mdx
@@ -1,8 +1,6 @@
---
title: 'Prefix Sum'
description: 'Precomputed cumulative state for O(1) range queries.'
-sidebar:
- icon: sticky-note
---
:::warning[Under construction]
diff --git a/docs/02-arrays-and-strings/03-sliding-window.mdx b/docs/03-guides/04-sliding-window.mdx
similarity index 88%
rename from docs/02-arrays-and-strings/03-sliding-window.mdx
rename to docs/03-guides/04-sliding-window.mdx
index a003bea..0a9d65c 100644
--- a/docs/02-arrays-and-strings/03-sliding-window.mdx
+++ b/docs/03-guides/04-sliding-window.mdx
@@ -1,8 +1,6 @@
---
title: 'Sliding Window'
description: 'Two pointers plus incremental state between them.'
-sidebar:
- icon: sticky-note
---
:::warning[Under construction]
diff --git a/docs/index.mdx b/docs/index.mdx
index 0c5e3c2..12b40ec 100644
--- a/docs/index.mdx
+++ b/docs/index.mdx
@@ -3,7 +3,7 @@ title: Introduction
description: Welcome to your new Blume docs.
---
-# Introduction
+## Getting Started
Welcome to **Blume** — markdown-first docs powered by Astro and Vite.
diff --git a/docs/problems/(two-pointers)/01-reverse-string.mdx b/docs/problems/(two-pointers)/01-reverse-string.mdx
deleted file mode 100644
index aac8c6b..0000000
--- a/docs/problems/(two-pointers)/01-reverse-string.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-sidebar:
- icon: code
- badge: '344'
----
diff --git a/docs/schedule/meta.ts b/docs/schedule/meta.ts
deleted file mode 100644
index db581ae..0000000
--- a/docs/schedule/meta.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineMeta } from "blume";
-
-export default defineMeta({
- title: "Schedule",
- order: 1,
- collapsed: true,
- display: "group",
- icon: "calendar",
-});
diff --git a/docs/schedule/week-1.mdx b/docs/schedule/week-1.mdx
deleted file mode 100644
index dcc5b74..0000000
--- a/docs/schedule/week-1.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: 'Week 1'
-description: 'Foundations. Learn arrays, hashing, two pointers, and the stack. Start the daily method and the rubric.'
-sidebar:
- icon: footprints
----
-
-**August 17–23, 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.
diff --git a/docs/schedule/week-2.mdx b/docs/schedule/week-2.mdx
deleted file mode 100644
index cf6b194..0000000
--- a/docs/schedule/week-2.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: 'Week 2'
-description: 'Windows, search, lists, and the first trees. Build the HyperAuth reverse-design walkthrough.'
-sidebar:
- icon: search
----
-
-**August 24–30, 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.
diff --git a/docs/schedule/week-3.mdx b/docs/schedule/week-3.mdx
deleted file mode 100644
index 15339ff..0000000
--- a/docs/schedule/week-3.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-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.
diff --git a/docs/schedule/week-4.mdx b/docs/schedule/week-4.mdx
deleted file mode 100644
index e0af727..0000000
--- a/docs/schedule/week-4.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-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 7–13, 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.
diff --git a/docs/schedule/week-5.mdx b/docs/schedule/week-5.mdx
deleted file mode 100644
index 2a60c7a..0000000
--- a/docs/schedule/week-5.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: 'Week 5'
-description: 'DP, greedy, and intervals. Run Mock #3 at the Staff bar. Start the live screens.'
-sidebar:
- icon: trending-up
----
-
-**September 14–20, 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).
diff --git a/docs/schedule/week-6.mdx b/docs/schedule/week-6.mdx
deleted file mode 100644
index 0015a07..0000000
--- a/docs/schedule/week-6.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: 'Week 6'
-description: 'Calibration onsites. Coding drops to maintenance. Mock #4 is the gate.'
-sidebar:
- icon: target
----
-
-**September 21–27, 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.
diff --git a/docs/schedule/week-7.mdx b/docs/schedule/week-7.mdx
deleted file mode 100644
index a2a0e10..0000000
--- a/docs/schedule/week-7.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-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.
diff --git a/docs/schedule/week-8.mdx b/docs/schedule/week-8.mdx
deleted file mode 100644
index 8958446..0000000
--- a/docs/schedule/week-8.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: 'Week 8'
-description: 'Close the process. Align deadlines to October 16. Negotiate on parallel offers. Sign.'
-sidebar:
- icon: handshake
----
-
-**October 5–16, 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
-
-
- Finish any remaining onsites. Solve at most 1 timed problem each day.
- Align every decision deadline to October 16. Tell every company that this date exists.
- Negotiate on parallel offers. Say that competing offers exist. Do not give numbers.
- Sign the best offer.
-
-
-## 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.
diff --git a/docs/solutions/(two-pointers)/01-reverse-string.mdx b/docs/solutions/(two-pointers)/01-reverse-string.mdx
new file mode 100644
index 0000000..f49c32a
--- /dev/null
+++ b/docs/solutions/(two-pointers)/01-reverse-string.mdx
@@ -0,0 +1,10 @@
+---
+title: '344. Reverse String'
+sidebar:
+ badge: 'Easy'
+---
+
+Two Pointers
+[Source](https://leetcode.com/problems/reverse-string/)
+
+## Description
diff --git a/docs/problems/(two-pointers)/02-squares-of-a-sorted-array.mdx b/docs/solutions/(two-pointers)/02-squares-of-a-sorted-array.mdx
similarity index 100%
rename from docs/problems/(two-pointers)/02-squares-of-a-sorted-array.mdx
rename to docs/solutions/(two-pointers)/02-squares-of-a-sorted-array.mdx