System design interviews test whether you can reason about trade-offs at scale. Interviewers aren’t looking for a single correct answer — they want to see how you think through constraints, identify bottlenecks, and justify architectural decisions with concrete reasoning.
These 20 questions cover the fundamental building blocks that appear in nearly every system design discussion: consistency models, caching layers, partitioning strategies, load balancing, and failure handling. Master these concepts and you’ll have the vocabulary to tackle any open-ended design problem.
Redis caching patterns define how your application coordinates reads and writes between the cache and the source-of-truth database. Choosing the wrong pattern causes stale data, cache stampedes, or write amplification.
Read full answer →Scaling is how you increase a system's capacity to handle more load. The two fundamental approaches differ in *where* you add resources.
Read full answer →API versioning lets you evolve a public API without breaking existing clients. The four main approaches each make different trade-offs between discoverability, client coupling, and REST purity.
Read full answer →SLOs, SLAs, and SLIs form a hierarchy for defining, measuring, and committing to reliability. Understanding how they relate is central to site reliability engineering.
Read full answer →Five 9s refers to 99.999% availability, which translates to approximately 5 minutes and 15 seconds of total downtime per year. To put this in perspective, 99.9% (three 9s) allows roughly 8.7 hours per year, and 99.99% (four 9s) allows about 52 minutes. Each additional 9 represents a tenfold reduc…
Read full answer →Latency and throughput are the two primary axes of performance, and they measure fundamentally different things.
Read full answer →Cache eviction policies determine which item is removed when the cache is full and a new item must be inserted. The right policy depends on the access pattern of the workload.
Read full answer →**Stateful web tier**: each web server stores session data locally — in memory or on local disk. A user who authenticates on server A must always be routed back to server A because only that server holds their session. This is enforced via sticky sessions (load balancer affinity). Problems: if se…
Read full answer →Running across multiple data centers (or regions) eliminates single points of geographic failure and reduces latency by serving users from the nearest location. However, it introduces a set of non-trivial challenges:
Read full answer →Back-of-envelope QPS estimation follows a top-down decomposition:
Read full answer →Storage estimation follows a data-type decomposition:
Read full answer →Bandwidth estimation connects QPS to data transferred per second. It is always directional — inbound (upload) and outbound (download) are sized separately because they drive different infrastructure limits.
Read full answer →Powers of 2 are the vocabulary of capacity estimation. Every storage, memory, and bandwidth number is ultimately expressed in multiples of 2^n bytes. Internalizing this table prevents unit errors under interview pressure.
Read full answer →Jeff Dean's latency numbers (periodically updated as hardware improves) are the calibration tool for system design. The orders of magnitude matter more than the exact figures.
Read full answer →The wrap-up is not a summary — it is a structured hand-off that signals engineering maturity. A strong close covers four areas:
Read full answer →Cache invalidation is one of the hardest problems in distributed systems because you must balance consistency, availability, and performance simultaneously. The four primary strategies each fit different access patterns.
Read full answer →CRUD (Create, Read, Update, Delete) maps onto HTTP methods through REST conventions. The mapping is not one-to-one—HTTP provides more verbs than CRUD has operations—and understanding the nuances prevents common API design mistakes.
Read full answer →Good API design is a contract between producers and consumers. A poorly designed API is expensive to change once clients depend on it. The following practices, applied consistently, produce APIs that are predictable, evolvable, and safe to build on.
Read full answer →Write-around caching is a strategy in which write operations bypass the cache entirely and go directly to the persistent storage (database, object store). The cache is only populated on cache miss during a subsequent read. This contrasts with write-through (cache and storage updated synchronously…
Read full answer →Reliability, fault tolerance, and redundancy are related but distinct concepts that together form the foundation of resilient system design. Conflating them leads to over-engineering in some areas and blind spots in others.
Read full answer →The best system design candidates practice the framework, not the topics. Spend 30 minutes drilling the requirements-clarification phase on random problem prompts — weak candidates rush past scoping and get penalized for it. Then work through 3–5 canonical problems (URL shortener, Twitter feed, notification service) end-to-end with a timer.
Focus on justifying every architectural choice against alternatives. “Why this over that” is where senior interviewers probe hardest. Practicing 20 problems shallowly gets you a mixed signal; practicing 5 problems until you can defend every decision gets you strong-inclined.
Take a free AI-graded assessment across multiple domains. No signup required.
Start Free Assessment