All articles
Interview PrepJune 20, 20269 min read

System Design Interview: The Complete Practice Guide

A repeatable framework for system design interviews: requirement gathering, capacity estimation, API design, data model, high-level architecture and bottlenecks.

The framework that never fails

System design interviews are not a pop quiz on specific products — they are an evaluation of how you break down an open-ended problem. Interviewers reward a clear, repeatable structure over brilliant one-off ideas. Use this sequence every time:

  • Clarify requirements and scope (features in vs. out)
  • Estimate scale: QPS, storage, bandwidth
  • Design the API surface
  • Design the data model and storage choices
  • Sketch the high-level architecture
  • Identify bottlenecks and how to address them

Capacity estimation without fear

Interviewers do not expect exact numbers — they expect defensible math. A useful rule set: a single server handles a few thousand requests per second; a database in the tens of thousands of reads per second with caching; a CDN absorbs most read traffic. Estimate QPS by assuming 10% of daily active users are online at peak, and each performs a handful of requests.

// Quick estimate for a news feed
DAU = 10,000,000
peak_users = DAU * 0.10            // 1,000,000 concurrent
requests_per_user_per_day = 50
avg_qps = DAU * requests / 86,400  // ~5,800 req/s
peak_qps = avg_qps * 5             // ~29,000 req/s

Storage decisions

Choose storage from the access pattern, not the trend. Relational databases win when data is strongly relational and queries are known ahead of time. A document store is comfortable for schemaless, nested content. A key-value store or cache shines for lookups at massive scale. Say your choice and justify it in one sentence.

  • Relational (Postgres): transactions, joins, structured relational data
  • Document (MongoDB): flexible schemas, nested objects, fast iteration
  • Key-value / cache (Redis): hot reads, leaderboards, sessions
  • Blob / object storage (S3): media, uploads, cold archives

The bottlenecks that get you the offer

The final phase of every answer is where candidates are separated: naming the two or three places the system breaks under load. Practice pointing at each one explicitly — "the database is the bottleneck, so I add a read cache and a write queue" — rather than listing generic scalability features.

  • Database read pressure → add a cache layer, read replicas
  • Write spikes → introduce an async queue and worker pool
  • Single point of failure → replicate services across zones
  • Hot partition on one key → shard by a high-cardinality field

Practice makes the framework automatic

Run the framework against ten classic questions — a URL shortener, a news feed, a chat system, a rate limiter, a notification service — until the structure comes automatically. Hiring teams want engineers who can reason from first principles. Rehearsed structure is exactly how you demonstrate that under time pressure.