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.