Skip to content

r97221004/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 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
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

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.

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.

Current Status

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.

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.

About

coming soon...

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors