CMD Guide
HomeSystem DesignSystem Design Building Blocks

What is a System Design Interview

What is a System Design Interview

A system design interview (often called the SDI, or the "design round") is a 45–60 minute open-ended conversation where you are handed a deliberately vague prompt — "Design a URL shortener", "Design Twitter's timeline", "Design a rate limiter" — and asked to architect a working, scalable system out loud. Unlike a coding interview, there is no compiler, no single correct answer, and no green checkmark. You are graded on how you think: how you turn ambiguity into concrete requirements, how you reason about scale, and how you defend your trade-offs.

The problem it solves for the company is simple. Senior and staff engineers spend most of their time not writing tight algorithms but deciding where data lives, how services talk, what breaks at 10x traffic, and which failure is acceptable. A coding screen cannot observe that judgment. The SDI is a proxy for the daily reality of building and evolving distributed systems.

How it works, precisely

Almost every strong SDI follows the same skeleton, and interviewers expect you to drive it. Treating the interview as a structured process — not a brain-dump — is itself part of the signal.

Crucially, this is a dialogue. The interviewer steers, injects new constraints ("now it's 100x bigger"), and expects you to adapt rather than recite a memorized answer.

A concrete worked scenario: "Design a URL shortener"

Watch how estimation drives design. Suppose the interviewer says "assume 100 million new URLs created per day."

Now the design falls out of the numbers. Reads at 116K/sec with tiny, immutable records are a perfect fit for an in-memory cache (Redis) fronting the database, plausibly serving 90%+ of redirects from memory in <5 ms. Writes go through a service that generates a unique key (via a pre-generated key range or a counter like a ZooKeeper/Snowflake-style ID) and stores the mapping in a partitioned key-value store. The read path and write path are asymmetric — and the estimates are what proved it. (This same 100M-URLs arithmetic is unpacked line by line, with anchor tables and estimation drills, in Back-of-the-Envelope Estimations — here we only need the conclusions it forces.)

Surviving the injected constraint: "now make it 100×"

The pitfalls below name "not adapting to injected constraints" as a red flag — so model the adaptation once. The interviewer says: "Great. Now it's 10 billion new URLs a day." Re-run the numbers and watch which component breaks first:

The order is the insight: the cache node saturates at roughly 2–8× today's read load, the key generator near 10×, storage only over years. Saying "at 100× the cache tier breaks first, here's why, here's the fix" — instead of defending the original sketch — is exactly the signal the injected constraint exists to test.

Trade-offs: when to lean which way

The SDI is really a test of whether you can name a trade-off and pick a side for this problem. A few recurring axes and how to reason about them:

The meta-rule: there is no "best" architecture, only the one that fits the stated requirements. Saying "I'd use eventual consistency here because a slightly stale view count is acceptable and availability matters more" scores higher than any specific technology name.

Pitfalls an interviewer probes

Interviewers are trained to poke exactly where weak candidates fold. Watch for these:

What separates a senior pass from a staff pass on the same prompt? Depth of initiative. A senior pass executes the skeleton competently: breadth once across the whole design, then depth wherever the interviewer points. A staff pass volunteers the next layer unprompted — names the failure modes before being asked ("this cache tier is a thundering-herd risk if a hot key expires"), attaches a cost to the design ("keeping five years hot is ~91 TB on fast storage; archiving cold links shrinks that to the working set"), and says which requirement they would push back on. The full catalogue of anti-signals — the behaviours that cap a score regardless of the design — lives in Things to Avoid During the System Design Interview; this page's job is the arc itself.

Key takeaways

🤖 Don't fully get this? Learn it with Claude

Stuck on What is a System Design Interview? Open Claude, copy a block below, and it'll teach you this exact concept — visually and interactively.

🎨 Explain it visually

Build the mental picture, not memorization.

I just read a lesson on **What is a System Design Interview** (System Design) and want to truly understand it. Explain What is a System Design Interview from first principles using ONE vivid real-world analogy and a visual mental model — draw it as ASCII art or a clear step-by-step diagram — with a concrete example using real numbers. Then ask me one question to check I got the mental picture, and wait for my reply. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🤔 Walk me through it (interactive)

Socratic — adapts to where you're stuck.

Teach me **What is a System Design Interview** interactively. Ask me ONE guiding question at a time, wait for my answer, and adapt to my confusion — build the idea with me step by step instead of explaining it all at once. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🧪 Quiz me & fix my gaps

Active recall exposes what you missed.

Quiz me on **What is a System Design Interview** with 5 questions, easy to tricky, ONE at a time. Tell me if each answer is right; at the end, explain clearly what I got wrong and why. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🧠 Make it stick

Intuition + hook + flashcards for long-term memory.

Help me remember **What is a System Design Interview** for the long term: give the one-sentence intuition, a memorable hook/mnemonic, a tiny worked example, and 3 active-recall flashcards (Q -> A). If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.

📝 My notes