High level design
System design, taught the way it is actually used. Every diagram on these pages is drawn by code rather than exported from a design tool, so it moves, it responds to what you drag, and it fits on your phone. Every page stops a few times and asks you to commit to an answer before it gives you one.
The pages are written for a specific moment: you have an interview in a few weeks, you have read a dozen blog posts, and you still cannot start from a blank whiteboard.
Looking for one subject rather than the whole path? Topics lists every chapter and article by subject and level, so you can pull up everything on caching or consistency at once.
Start here#
New to system design? Read these first, in this order. The first one is the round itself: what to do in each part of the 45 minutes, and how you are scored. The other six are the words every design question is answered in: how a system grows past one machine, how to put a number on traffic and on downtime, how requests get spread out, which database to reach for, and what you give up when the network breaks.
Building blocks#
The parts that the design questions reuse. Each one goes a level deeper than the starter pages above.
Two more building blocks live in the databases path, because they are about what happens inside one database: how an index finds a row, and how a storage engine lays data out on disk.
Design questions#
Staff level#
The questions that come up at senior and staff interviews, where the interesting part is not what the boxes are but which constraint decides the design. Start with the chapter on what changes at this level, then use the questions to practise it.
India scale#
Systems you use every day, at volumes most global case studies never have to handle. The traffic shapes are the lesson: a whole country pressing "book" in the same second at tatkal time, payment peaks on festival days, a whole country refreshing the score of one ball. Get these right and the usual global questions feel gentle.
What is coming#
More building blocks: CDNs, real-time connections at scale (the protocol comparison is already in WebSockets vs SSE vs long polling), API design, observability, and security. Failure handling has its own chapter: Retries, backoff and circuit breakers. Two chapters on the round itself: how to run 45 minutes, and what changes at senior and staff. More questions: a distributed job scheduler, a stock exchange matching engine, a digital wallet, and a food delivery order flow for the India scale set. Consensus, consistency models, clocks, leases, tail latency and distributed transactions have their own path: Distributed systems.