Learn system design from nothing
No prior knowledge assumed. Read these five in order, then work through the topics one at a time. Every topic has a View more deep dive and a worked example at the end.
First, the ground floor
Five short lessons. After these, the vocabulary on the topic pages should be familiar.
What is system design?
Deciding how the parts of a product fit together, before anyone writes code.
How a system design interview works
Forty-five minutes, a vague question, and someone scoring how you think.
The five stages — the spine of every answer
One order to work in, so you never freeze in front of a blank whiteboard.
Where's the slack?
How much time the system has before a person notices. This one question shapes most designs.
The words you need, in plain English
A dozen or so words that unlock every other page. Nothing left undefined.
Then, the topics in order
Grouped so each stage builds on the last. You can jump around, but this order assumes the least.
Measuring things
Before you can design anything you need to be able to say how fast, how many and how big.
How a request reaches you
Follow one request from a browser to your code and back, layer by layer.
Storing data
Where the truth lives, how to find it quickly, and how to talk to it without falling over.
More than one machine
The moment data lives in two places, a new set of problems starts. This is the senior material.
Doing work later
Queues, retries, and making it safe for the same thing to happen twice.
Common patterns
Specific reusable answers. Most of these appear as the follow-up rather than the first question.
In production
The part candidates often skip, and the part senior interviews dig into. A design you cannot deploy, watch, secure, restore or pay for is not finished.