Skip to content

r97221004/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 

Repository files navigation

System Design in Practice

A case-study-first system design guide for interview preparation.

System Design Case Studies Format Status License: MIT

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.

Why This Guide

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.

What Each Case Study Covers

Each completed case study is organized around the same order you can use in an interview:

  1. Problem Framing - clarify what is being designed, who uses it, and what a strong answer must cover.
  2. Requirements - lock functional requirements, non-functional requirements, and explicit scope.
  3. Capacity Estimation - estimate QPS, storage, bandwidth, and the number that shapes the design.
  4. API Design - define core endpoints, request/response shapes, and interaction patterns.
  5. High-Level Architecture - draw the main services, request flow, data stores, queues, caches, and external systems.
  6. Data Model - explain key entities, access patterns, partitioning, indexes, and storage choices.
  7. Deep Dives - spend most of the remaining time on the 2-3 hardest parts of the system.
  8. Bottlenecks, Failure Modes & Trade-offs - call out scaling limits, correctness risks, and practical mitigations.
  9. 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.

Case Studies

Part Case Study Primary Focus Status
Content & Media Design LeetCode Sandboxed execution, submission queues, worker pools Draft
Infrastructure & Platforms Design a URL Shortener Short code generation, redirect latency, caching, click analytics Outline
Infrastructure & Platforms Design a Rate Limiter Algorithm trade-offs, distributed counting, atomic increments, fail-open vs. fail-closed 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
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

Progress Model

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.

Who This Is For

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.

Prerequisites

Comfort with basic data structures, HTTP, and at least one database model is enough. No specific programming language, cloud provider, or framework is required.

How to Use This Guide

  1. Read the case studies in table order for a curated path from familiar product systems to correctness-heavy designs.
  2. Jump directly to a specific case study if you are preparing for a particular interview prompt.
  3. Practice answering out loud in the same order: framing, requirements, scale, APIs, architecture, data model, deep dives, trade-offs, wrap-up.
  4. Spend extra time on Deep Dives and Bottlenecks, Failure Modes & Trade-offs; those sections usually decide whether an interview answer feels senior.

About

coming soon...

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors