System Design#

System design is the skill of turning a vague idea (“build something like TinyURL”) into a working plan: what it does, how big it must be, which pieces it needs and what you give up with each choice. This course teaches it one concept per chapter. Every chapter has a diagram, an everyday example, worked numbers, code you can run, common mistakes and exercises.

Note

Two ways to learn, side by side. Read the chapters here to learn the ideas. Then open the System Design playground: the problem is on the left and a guided, question-by-question solution is on the right. You decide first, then it shows the correct reasoning and moves you on.

The seven steps of a system design answer Clarify, estimate, API and data, high-level design, deep dive, reliability, trade-offs, with suggested minutes. 1 Clarify3-5 min 2 Estimate2-3 min 3 API+data3-5 min 4 High-level5-10 min 5 Deep dive10-15 min 6 Reliability5 min 7 Trade-offsto the end Start simple, then evolve. Tie every decision to a requirement or a number from steps 1 and 2. Think out loud: the reasoning matters more than the final picture.
Seven steps, roughly 45 minutes. Do not spend 25 minutes on steps 1 and 2.

How the course is organised#

Part

What you learn

Foundations

The interview routine, estimating numbers, designing APIs and data

Core concepts

Scalability, availability, reliability, failure, latency vs throughput, consistent hashing, CAP

Networking

OSI, IP, TCP vs UDP, checksums, DNS, proxies, HTTP and HTTPS, load balancing

APIs

REST vs GraphQL, gateways, WebSockets, webhooks, idempotency, rate limiting, API design

Databases

ACID, SQL vs NoSQL, indexes, sharding, replication, scaling, database types, Bloom filters, unique IDs

Caching and CDN

Caching strategies, eviction, distributed caches, CDNs

Asynchronous communication

Queues, publish/subscribe, change data capture

Distributed systems

Heartbeats, discovery, consensus, locks, gossip, circuit breakers, disaster recovery, tracing

Architectural patterns

Client-server, microservices, serverless, event-driven, peer-to-peer

Trade-offs

Eleven head-to-head comparisons you can quote in an interview

Case studies

Ten full designs that use everything above

How each chapter works#

  1. The big idea in plain words, with an everyday example.

  2. A picture of the idea.

  3. How it works, with real numbers and code you can run (the output shown is what the code printed).

  4. Common mistakes and what interviewers look for.

  5. Try it yourself: questions first, answers hidden until you open them.

Tip

Keep a notebook. For each chapter write one line: “I would use X when Y, and it costs Z.” That sentence is exactly what an interviewer wants to hear.