Lesson 0: Why Design a System's Scale Ahead of Time?
A side project works perfectly. Ten users log in, write, read — everything responds instantly. One server, one database, code that runs line by line (synchronous) — why complicate things? Now imagine the exact same code, with not a single line changed, facing ten million users. Suddenly the one serv
System design is like planning a road before a city grows around it: easy to fix a line on paper, very hard to tear up and rebuild a road that's already full of cars.
- Scale
- The number of users, requests, or amount of data the system must serve at once. The same code can work great at small scale and collapse at large scale, without any change to its logic.
- Scale trade-off
- A deliberate choice between two good properties when you cannot maximize both at once — for example speed versus consistency, cost versus reliability, or simplicity versus flexibility. There is no single correct answer, only a choice that fits the current constraints.
- System design interview
- A common technical interview format at scale-sensitive companies that tests not just whether a candidate writes correct code, but whether they can reason about trade-offs under real constraints — exactly the skill that also protects real systems from collapse.