System Design Guide

A practical, no-fluff system design study guide for software engineers — for building intuition about how real systems are put together, and for interview prep.

How to use this guide

  • Each topic in the left nav is a standalone page you can read in ~10 minutes.
  • Every page follows the same shape: why it matters, core concepts, a mental model (diagram), interview questions with brief answer keys, and a short watch list of verified YouTube videos.
  • Topics 01–10 are building blocks (scalability, consistency, load balancing, caching, databases, partitioning, queues, rate limiting, CDNs, observability). Topics 11–14 are case studies that combine those building blocks into a full interview-style design.
  • Read them in order, or jump straight to the topic you need. Nothing here requires a backend, an API key, or a login — it’s just reading.

Roadmap

# Topic Interview
01 Scalability & availability 🎯 Frequent
02 CAP theorem & consistency models 🎯 Frequent
03 Load balancing 🎯 Frequent
04 Caching 🎯 Frequent
05 SQL vs NoSQL 🎯 Frequent
06 Partitioning & sharding 🎯 Frequent
07 Queues & async processing 🎯 Frequent
08 Rate limiting 🎯 Frequent
09 CDN & edge Occasional
10 Observability Occasional
11 Case study: URL shortener 🎯 Frequent
12 Case study: news feed 🎯 Frequent
13 Case study: chat / messaging 🎯 Frequent
14 Case study: distributed rate limiter 🎯 Frequent

Contributing

See CONTRIBUTING.md. Short version: keep topics tight, verify every link yourself, don’t invent scope.

License

MIT


Back to top

Copyright © 2026. Distributed under the MIT License.

This site uses Just the Docs, a documentation theme for Jekyll.