System Design
Design systems that survive scale, failure and time.
advanced · 3–5 months · 3 milestones · 11 topics
Tap a box to open it · right-click to mark done
Tap a box to open it
Full outline
The architecture skills senior engineers are hired for: capacity estimation, data modelling, caching and queues, consistency trade-offs, resilience patterns, and how to communicate a design under interview pressure.
01Building Blocks
The components every design is assembled from.
- Back-of-envelope estimation
Turning vague requirements into numbers, so the design has constraints to satisfy.
- Load balancing & proxies
Distributing traffic, terminating TLS, and routing intelligently.
- Storage selection
Picking the store that matches the access pattern, not the one that's fashionable.
- Caching layers
Where to cache, what to cache, and how to invalidate it.
- Back-of-envelope estimation
02Scaling & Consistency
What breaks when one machine becomes a hundred.
- Replication & partitioning
Copying data for availability; splitting it for capacity.
- Consistency models
Strong, eventual, causal — and what each one costs.
- Messaging & event-driven design
Decoupling services through queues and logs.
- Failure & resilience
Designing for the failure that will definitely happen.
- Replication & partitioning
03Practice & Communicate
A design nobody understands is not a design.
- Classic case studies
Work through the canonical problems until the patterns become instinct.
- The interview framework
A repeatable structure that stops you from rambling.
- Reasoning about trade-offs
Seniority is visible in how you justify a choice, not in how many buzzwords you use.
- Classic case studies