TypeScript
Types that stay after you stop looking at the file, then the interview core — two pointers, a cache that evicts, a retry that backs off. Blanks first, challenges next, then the cases that pin a request down.
Reading is a separate door: a whole small codebase, graded on what you can say about it.
fundamentals
TypeScript Basics
Types you write and types the compiler already knows. The blanks are the annotations that change what the next line is allowed to be.
Async Patterns
Promises, await, and the request that keeps running after you stopped waiting.
Generics
A type parameter is not any. The constraint is the promise; inference is usually enough.
interview prep
Arrays and Strings
Two pointers, a sliding window, a running sum — the three shapes most interview array questions reduce to, practised as code you can hold in your head.
Search and Intervals
Binary search and the interval merge — precision problems where the whole exercise is the boundary, and one off comparison decides everything.
Stacks and Hash Maps
A stack remembers what it is waiting for — a matching paren, a pending warmer day. A hash map remembers where it has already been. Between them sit most linear-time interview tricks.
Trees and Graphs
A tree is a graph with a parent's discipline, and two traversals — breadth with a queue, depth with a call stack — carry almost every question about them.
Dynamic Programming
Overlapping subproblems and optimal substructure — count the paths, make the change, find the longest common thread. One small table beats a billion recursive calls.
System Design Primitives
The small machines interviews ask you to build on the spot — a cache that evicts, a bucket that refills, a call that waits. Each one is an invariant you can hold in your head, not a library call.
HTTP and Networking
Status classes, URL anatomy, idempotency, and a retry that backs off — the wire-level facts every system design answer quietly assumes you know cold.
Linked Lists
The list you build out of pointers — reverse it, find its cycle with two runners, merge two of them, and lose nothing on the way.
Heaps and Top-K
The structure behind every "top K" and "kth largest" question — a binary heap where the smallest value always sits on top, no sorting required.
Backtracking
Choose, explore, unchoose — the skeleton that generates subsets, permutations and combinations without ever trusting a nested loop to do it.
Advanced Dynamic Programming
The recurrence is no longer a fibonacci in disguise — rob houses without neighbours, edit one word into another, and find the longest rising thread that was never contiguous.
Tries and Prefixes
A tree keyed by characters, where every word is a path — autocomplete, prefix lookup, and the wildcard search that walks every branch at once.
JS Interview Classics
The functions every frontend loop asks you to write from memory — promiseAll, an emitter, deep equality, a memoized call. No library, no notes.
Advanced System Design
The distributed-systems interview set — a hash ring that barely moves, a filter that says maybe, a window that slides, a breaker that opens.
beyond the blanks
Challenges
No blanks. The suite is the spec.
Code Review
Code that already looks finished, and is wrong. Find the defect before you submit — the tests it came with all pass.
Build the Tool
Stop doing the check by hand. These exercises are about writing the thing that does it for you, forever — the highest-leverage move available and the one nobody teaches, because it looks hard to grade. It is not: a tool either processes its cases or it does not.
Pin It Down
A vague request produces coherent code that solves a slightly different problem. These exercises give you the prose and ask for the cases that make it unambiguous — graded by whether they reject the implementations that are subtly wrong.
Give It What It Needs
A model with the wrong context invents confidently. A model with too much gets worse and costs more. You are given a question it cannot answer alone and a menu of things you could show it, each with a price — being right is the floor, being right cheaply is the exercise.
Three Messages
Anyone can steer a model with unlimited turns. The skill shows up when you have three: what you say first, what you check, and when you stop steering and read the code yourself. The tests you are graded against stay hidden until you finish.
Supervise the Agent
An in-platform agent works the task. Failures are seeded. You are graded on catching them — not on whether the code ends up green. Claims on the left, evidence on the right, and a scarce intervention budget.