

Lesson 01 · 11 min
How a system design interview goes and where to start
Requirements and numbers first, then the diagram. Not the other way round.
11 minLesson 1 of 10Practice includedAsk AI on any point
In a system design interview you get a vague task: "design Twitter", "build a URL shortener". There is no single right answer. The interviewer watches how you ask questions, estimate and weigh trade-offs. A typical session lasts 45 or 60 minutes, and you need to spend that time deliberately.
Four steps of the session
- Requirements (5 to 10 minutes): what the system does and for whom, how many users, what matters more: speed or accuracy.
- Estimates (5 minutes): requests per second, data volume, traffic. Rough, but in numbers.
- High level design (15 to 20 minutes): client, load balancer, services, databases, cache, queues. Boxes and arrows.
- Deep dive (the rest of the time): one or two bottlenecks the interviewer picks. This is where your level shows.
Functional and non-functional requirements
Functional requirements say what the system can do: "a user publishes a post", "sees a feed of friends", "gets notifications". Non-functional ones say how well it does it: latency, availability, scale, data consistency, cost. It is the non-functional ones that shape the architecture.
- How many users per day (DAU), and how many actions does each one make?
- Which is more common: reads or writes? A ratio of 100 to 1 and one of 1 to 1 lead to different systems.
- What latency is acceptable: 100 ms per response or a few seconds?
- Which is worse: showing slightly stale data or not answering at all?
- How long do we keep data, and can it be deleted?
Back of the envelope estimates
Back of the envelope estimation: a quick calculation of orders of magnitude. Nobody needs 10% accuracy; you need to see whether one server is enough or you need a hundred. The key trick: a day has 86,400 seconds, round it to 100,000 (10 to the fifth power).
- 1M requests per day is about 12 per second. 100M per day: about 1,200.
- One ordinary application server handles hundreds or a few thousand simple requests per second.
- Cache memory: take the hottest 20% of a day's data. It often fits on one or a few Redis servers.
Check
Lock it in before you move on
1. Where do you start when asked to "design Instagram"?
2. Which of these is a non-functional requirement?
3. 100M requests per day is roughly how many per second on average?
4. How much downtime per year does 99.9% availability allow?
5. What load is a system designed for?