System Design

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.

AI

You can ask about this point«Lesson summary»

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.
AI

You can ask about this rule«Don't draw before you ask»

AI

You can ask about this point«Four steps of the session»

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?
AI

You can ask about this rule«Availability is counted in nines»

AI

You can ask about this point«Functional and non-functional requirements»

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).

A messenger with 10M DAU
AI

You can ask about this rule«Count the peak, not the average»

  • 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.
AI

You can ask about this point«Back of the envelope estimates»

Check

Lock it in before you move on

  1. 1. Where do you start when asked to "design Instagram"?

  2. 2. Which of these is a non-functional requirement?

  3. 3. 100M requests per day is roughly how many per second on average?

  4. 4. How much downtime per year does 99.9% availability allow?

  5. 5. What load is a system designed for?

PracticeSolve the lesson tasksA few short tasks in the editor. Check your code right away and see where it goes wrong.Start practice