Learn Coding Patterns & System Design
Short lessons that teach the idea behind a type of interview question: the cues that give it away, the rule to apply, and a worked example. Each one links straight to problems so you can practise it right away.
Want a list of problems to work through instead? Learning Paths don't teach; they put the problem library in a sensible order. Browse learning paths →
Coding patterns
Recognize the pattern, then apply it
Arrays & Hashing
Trade memory for speed: remember what you've seen so each lookup is O(1).
Two Pointers
Move two indices over a sequence and discard a whole side with a proof.
Sliding Window
Grow and shrink one contiguous range instead of rescanning it.
Binary Search
Halve a sorted or monotonic search space to reach the answer in O(log n).
Tree Traversal
Pick BFS or DFS and carry the right state down or up the tree.
Graph Traversal
Walk nodes and edges with a visited set so cycles can't trap you.
System design foundations
System Design Interview Framework
A repeatable structure: requirements, estimates, API, data model, architecture, deep dive.
SQL vs NoSQL
Choosing a data model based on access patterns and consistency needs.
Caching
Cache-aside vs write-through, eviction, invalidation, and stampede risk.
Queues & Streams
Decoupling producers from consumers; delivery guarantees and fan-out.
Sharding & Replication
Splitting data for write scale vs copying data for availability.