CodeOath
← All posts
System Design52 min total · 14 parts

System Design Fundamentals for Interviews: Scalability, Trade-offs, and the Framework Interviewers Actually Grade

Part 2 of 14 · ~4 min

What System Design Interviews Actually Test

The single biggest misconception walking into a system design interview is that there's a "correct" architecture waiting to be discovered, and the interviewer is silently checking your diagram against it. There isn't. Real engineering organizations building the same product — a URL shortener, a chat app, a ride-sharing dispatch system — regularly ship meaningfully different architectures, and most of those differences are defensible given the constraints each team was actually working under. What the interview is really measuring is whether you can work through ambiguity the way you'd have to on the job: gather the missing requirements instead of guessing at them, put real numbers behind your decisions instead of hand-waving "at scale," and explain why you chose one trade-off over another instead of presenting a diagram as if it fell from the sky.

The Five-Step Framework

Every system design answer, regardless of the specific problem, benefits from the same shape:

  1. Clarify requirements. Nail down the functional requirements (what does the system actually need to do?) and the non-functional ones (how many users, how much traffic, what's the acceptable latency, does it need to be strongly consistent or is eventual consistency fine?) before drawing a single box. A design built on the wrong assumptions is wrong no matter how well-executed it is from there.
  2. Back-of-the-envelope estimation. Turn the requirements into rough numbers — requests per second, storage growth per year, bandwidth — because those numbers are what actually decide whether a single database can handle this or whether you need to shard, whether a cache is optional or load-bearing, whether "just use one server" is a real option or a joke.
  3. High-level design. Sketch the major components — clients, load balancer, application servers, cache, database, maybe a queue — and how a request flows through them. This is deliberately coarse-grained; the goal is a shared picture of the system before diving into any one piece.
  4. Deep dive on one or two components. Pick the part of the system that's actually interesting for this problem — the ID-generation scheme for a URL shortener, the fan-out strategy for a chat system — and go deep: data model, algorithm, failure modes, scale limits. Nobody has time to deep-dive on every box in the diagram, and trying to is itself a mistake (more on this in the last chapter).
  5. Discuss trade-offs and bottlenecks. Name what you didn't fully solve, where the design would break first under 100x the load, and what you'd change to fix it. A design presented as flawless is a red flag — every real design has a weak point, and being able to name yours is a sign of seniority, not a confession of failure.

Why the Framework Matters More Than the Diagram

An interviewer who has run this same interview fifty times isn't surprised by any particular architecture you might land on — leader-follower replication, a cache in front of a database, a queue between two services, these are all things they've seen a hundred times. What they haven't necessarily seen is how you got there. Did you ask what "handle a lot of users" actually means in requests per second before designing for it? Did a number you calculated in step 2 actually show up anywhere in your step-3 design, or did you estimate 50,000 requests per second and then draw a single, unreplicated database with no comment? Did you notice out loud that your own design has a single point of failure, or did the interviewer have to drag it out of you with a pointed question?

That's also why "correct" is the wrong frame entirely. Two candidates can both pass the same interview with different designs, provided both designs are internally consistent with the requirements they gathered and both candidates can defend the trade-offs they made. And two candidates can both fail with the same final diagram, if one arrived at it by reciting a memorized template and the other arrived at it by reasoning through the actual constraints of the problem — because the follow-up questions will expose the difference immediately.

Common mistake: Treating the deep-dive component as "the part I studied for" and steering every question toward it regardless of what's actually being asked. Interviewers notice a rehearsed answer bolted onto an unrelated prompt, and it reads as an inability to adapt — which is exactly the skill the interview is trying to measure.