Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
puncsky/system-design-and-architecture: Learn how to design large-scale systems. Prep for the system design interview.

puncsky/system-design-and-architecture: Learn how to design large-scale systems. Prep for the system design interview.

4 hours ago

System Design and Architecture

Learn how Uber, Netflix, Stripe, and modern AI agents are built, one system at a time.
A practical, diagram-first guide for engineers who build real systems and ace system design interviews.

GitHub stars CI License: GPL v3 Telegram Discord

Start here · What's new · Case studies · Theories · Interview prep · 简体中文 · Website

⭐ Star this repo to follow new chapters as they land.

The 2nd Edition is a work in progress. New chapters are published regularly, so watch the repo for updates.

Why this book

Since 2015, _System Design and Architecture_ has helped software engineers around the world land roles and design better systems. It works because it is:

  1. 🌎 Grounded in real systems. Every design starts from how companies such as Uber, Facebook, Netflix, Stripe, and Dropbox actually build their products.
  2. 🍕 Easy to digest. System design at the right level of abstraction is a map that gets you to the destination by the shortest route. Charts, diagrams, and step-by-step guides give you the minimum actionable knowledge to excel in interviews and start building.
  3. 🤲 Broad. It covers backend to frontend, and classic distributed systems to LLM inference and AI agents.
  4. 🚶‍♀️ Repeatable. Every design follows the same 4-step framework:
1. Clarify requirements 2. Sketch the high-level design 3. Deep dive into components and how they interact 4. Wrap up with blind spots and bottlenecks

Start here

| If you are... | Read this path | | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | 🧑‍💼 Senior (Google L5+) | Go straight to System Design in Practice. | | 🧑‍💻 Junior or mid-level (Google L3/L4) | Read System Design Theories first, then System Design in Practice. | | 🌱 Just starting out | Begin with Prepare for an Interview effectively, then Theories, then Practice. |

What's new

The 2nd Edition covers what changed between 2015 and today: mobile ate the world, cloud-native computing arrived with Kubernetes, web3 rose and fell, and AI agents became a new class of system. Recent additions:

Also coming in the 2nd Edition: more companies and products, existing chapters rewritten for current trends, more diagrams with step-by-step guides, a PDF edition, and less repetition so that each design teaches its own abstraction.

Out of scope: API design for specific domains (see Google's API design guide) and deep object-oriented design.

System Design in Practice

🤖 AI and Agents

| Product | Question | | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | Agent | Designing an Always-on Agent | | TikTok | Designing a recommendation system | | Uber | Fraud Detection with Semi-supervised Learning |

📱 Social, Media, and Marketplaces

| Product | Question | | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | Instagram | Designing Instagram or Pinterest | | Uber | Designing Uber | | Airbnb | Designing Airbnb or a hotel booking system | | Facebook | How Facebook Scale its Social Graph Store? TAO | | Netflix | How Netflix Serves Viewing Data? | | Netflix | How to stream video over HTTP for mobile devices? HTTP Live Streaming (HLS) | | Lyft | Lyft's Marketing Automation Platform -- Symphony | | LinkedIn | Designing typeahead search or autocomplete | | Online judge | Designing Online Judge or Leetcode |

💳 Payments and Fintech

| Product | Question | | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | Stripe | How to design robust and predictable APIs with idempotency? | | Stripe | Designing payment webhook | | Square | Designing Square Cash or PayPal Money Transfer System | | Robinhood | Designing Stock Exchange | | Robinhood | Designing Smart Notification of Stock Price Changes |

🏗️ Storage and Infrastructure

| Product | Question | | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | Confluent | Designing a distributed logging system | | Twitter | Designing a URL shortener | | LinkedIn | Designing a KV store with external storage | | Memcached | Designing a distributed in-memory KV store or Memcached | | Facebook | Designing Facebook photo storage | | Grafana | Designing a metric system | | Nginx | Designing a Load Balancer or Dropbox Bandaid |

System Design Theories

Foundations

Data and consistency Data structures AI systems Engineering craft

Prepare for an Interview effectively

Read in your language

About the author

Tian Pan is a software engineer and engineering manager who has worked in the San Francisco Bay Area for 10+ years, at Uber, Oracle, IoTeX, and Microsoft. More notes live at tianpan.co.

Community and contributing

  • 💬 Join the discussion on Telegram or Discord.
  • 🐛 Found a typo, a broken diagram, or a gap in a design? Open an issue or send a PR.
  • 🌐 Translations are welcome. Chapters in en/ and zh-CN/ use identical filenames.

License

GPL v3

Found this useful? ⭐ Star the repo. Spotted a gap? Open a PR.

Chat with me