Curriculum
System Design, end to end.
Each track builds on the one before it. Every lesson ends with a system you have operated yourself, not a summary you have read.
Foundations
How requests travel, and the two numbers that describe every system.
The Request Lifecycle
Follow a single request from a browser to a database and back, hop by hop.
Latency & Throughput
Two numbers people constantly confuse, and the curve that connects them.
Performance vs Scalability
A fast system and a scalable one are different achievements, and you can have either without the other.
DNS
How a name becomes an address, and why it is the most under-appreciated availability dependency you have.
Communication Protocols
TCP, UDP, HTTP, RPC, and REST — what each one guarantees and what it costs.
Capacity Estimation
Back-of-the-envelope numbers: the skill that turns a vague requirement into an architecture.
Scaling
Adding capacity, spreading load, and absorbing reads before they cost you.
Horizontal Scaling
Adding replicas works right up until you reach the thing you cannot replicate.
Load Balancing
Spreading traffic across replicas, and what happens when one of them dies.
Reverse Proxies
The layer in front of your servers, and the difference between it and a load balancer.
Caching
Put a cache in front of an overloaded database, then take it away and watch what breaks.
Cache Write Strategies
Cache-aside, write-through, write-behind, and refresh-ahead — four answers to when the cache gets updated.
CDNs & Edge Caching
Move content close to users, and stop most requests before they reach you at all.
Rate Limiting
Deciding whose requests to refuse, so the ones you accept keep working.
The Application Layer
Splitting a monolith into services buys independent scaling and charges you in network calls.
Data Systems
Where state lives, how it multiplies, and what it costs to split.
Databases Under Load
Connection pools, query cost, and why the database is almost always the thing that breaks.
Indexes & SQL Tuning
Why a query takes 4ms or 4 seconds, and the handful of things that decide which.
Replication & Stale Reads
Read replicas multiply your read capacity and hand you a consistency problem in exchange.
Federation & Denormalization
Splitting a database by function, and duplicating data on purpose — two moves before sharding.
Sharding
Splitting one database into many — the last resort, and the one that changes everything.
NoSQL & Choosing a Store
Key-value, document, wide-column, and graph — what each is shaped for, and when SQL is still right.
Transactions & Isolation
What ACID actually guarantees, what your isolation level quietly does not, and what it costs.
Distributed Systems
Decoupling with queues, surviving partial failure, and agreeing on truth.
Queues & Backpressure
Queues absorb bursts. They do not create capacity, and confusing the two is costly.
Retries & Idempotency
Every network call can fail after succeeding. Designing for that is most of distributed systems.
Circuit Breakers & Bulkheads
Failing fast on a dependency that is already down, so its outage does not become yours.
Availability Patterns
Fail-over, redundancy, and the arithmetic that turns nines into minutes of downtime.
CAP, PACELC & Consistency Models
The choice a partition forces on you, and the one you make every day when there isn't one.
Production Engineering
Observability, service levels, and operating what you built.
Observability
Metrics, logs, and traces — what each one answers, and why averages hide your worst outages.
SLI, SLO & Error Budgets
Turning reliability from an argument into a number that decides what you work on next.
Security Fundamentals
Least privilege, defence in depth, and the handful of failures behind most real breaches.
Multi-Region Systems
Serving users from several regions, and the consistency bill that arrives with it.
AI Systems
LLM request architecture, retrieval, and the economics of tokens.
LLM Request Lifecycle
SoonIn development.
Retrieval-Augmented Generation
SoonIn development.
Semantic Caching
SoonIn development.
Agentic Systems
Tool calling, long-running work, and systems that decide what to do next.
Tool Calling
SoonIn development.
Agent Loops & Checkpointing
SoonIn development.