A case-study-first system design guide for interview preparation.
System design interviews are hard because they are open-ended: you need to clarify the problem, estimate scale, choose trade-offs, and defend an architecture under time pressure.
This repository focuses on one thing: realistic, end-to-end case studies. Each chapter walks through a common interview prompt from requirements to bottlenecks, with enough structure to practice the process instead of memorizing a diagram.
Most system design resources fall into one of two traps: they explain isolated concepts without showing how they fit together, or they provide polished final diagrams without the reasoning that gets you there.
This guide takes a case-study-first approach. The goal is to build judgment by repeatedly working through the same design rhythm across different product domains: content feeds, video streaming, file sync, collaborative editing, messaging, marketplaces, dispatch, and money movement.
Each completed case study is organized around the same order you can use in an interview:
- Problem Framing - clarify what is being designed, who uses it, and what a strong answer must cover.
- Requirements - lock functional requirements, non-functional requirements, and explicit scope.
- Capacity Estimation - estimate QPS, storage, bandwidth, and the number that shapes the design.
- API Design - define core endpoints, request/response shapes, and interaction patterns.
- High-Level Architecture - draw the main services, request flow, data stores, queues, caches, and external systems.
- Data Model - explain key entities, access patterns, partitioning, indexes, and storage choices.
- Deep Dives - spend most of the remaining time on the 2-3 hardest parts of the system.
- Bottlenecks, Failure Modes & Trade-offs - call out scaling limits, correctness risks, and practical mitigations.
- Wrap-Up - close with the central design idea and what you would improve next.
New chapters and future revisions are drafted from the case study template, which includes a 45-minute interview answer flow.
| Part | Case Study | Primary Focus | Status |
|---|---|---|---|
| Content & Media | Design LeetCode | Sandboxed execution, submission queues, worker pools | Draft |
| Content & Media | Design Instagram | Feed generation, fan-out, media delivery, follow graph storage | Outline |
| Content & Media | Design YouTube | Resumable uploads, transcoding, adaptive bitrate streaming, CDN delivery | Outline |
| Storage & Collaboration | Design Dropbox | File sync, chunking, conflict resolution, metadata storage | Outline |
| Storage & Collaboration | Design Google Docs | Real-time collaboration, OT/CRDT, presence, version history | Outline |
| Real-Time Communication | Design WhatsApp | Message delivery, offline sync, acknowledgements, push notifications | Outline |
| Real-Time Communication | Design Slack / Discord | Channel fan-out, message ordering, presence, search | Outline |
| Marketplaces & Coordination | Design Ticketmaster | Seat locking, waiting rooms, inventory consistency, payment flow | Outline |
| Marketplaces & Coordination | Design Uber | Geospatial indexing, location ingestion, matching, dispatch | Outline |
| Money & Correctness | Design a Payment Gateway | Idempotency, sagas, ledger design, reconciliation | Outline |
| Status | Meaning |
|---|---|
| Outline | Chapter structure and deep-dive topics are defined. |
| Draft | The chapter has a complete first pass and can be read end to end. |
| Review | The chapter is being checked for clarity, correctness, and interview usefulness. |
| Complete | The chapter is polished and stable. |
This guide is for:
- Engineers preparing for system design interviews.
- Backend engineers who want structured architecture practice.
- Students who know basic web/backend concepts and want realistic design walkthroughs.
- Anyone who learns better from complete examples than from disconnected concept lists.
- Read the case studies in table order for a curated path from familiar product systems to correctness-heavy designs.
- Jump directly to a specific case study if you are preparing for a particular interview prompt.
- Practice answering out loud in the same order: framing, requirements, scale, APIs, architecture, data model, deep dives, trade-offs, wrap-up.
- Spend extra time on Deep Dives and Bottlenecks, Failure Modes & Trade-offs; those sections usually decide whether an interview answer feels senior.
The project structure is stable and intentionally focused on case studies only. Content is being expanded progressively, with Design LeetCode serving as the first draft chapter and the remaining case studies currently outlined.
Comfort with basic data structures, HTTP, and at least one database model is enough. No specific programming language, cloud provider, or framework is required.