Architecture, scaling, reliability, and the decisions that compound.
Core concepts before diving into system design
Figure out functional and non-functional requirements, and establish scale before designing.
Scalability, reliability, availability, efficiency, and serviceability—the key properties that define how a system behaves.
The atomic unit of system design—client, server, and database—and why keeping them independent matters.
REST APIs are the foundation—master HTTP verbs, routes, headers, body, responses, and status codes. Then know when GraphQL, gRPC, and WebSockets fit.
SQL vs NoSQL, plus graph, vector, time-series, and other database types. When to use each and what to know for system design.
Why scaling matters, what vertical and horizontal scaling mean, and the pros and cons of each approach.
When you horizontally scale, you need a load balancer to distribute traffic across servers. Learn the role, algorithms, and health checks.
End-to-end system design walkthroughs — from requirements to architecture to deep dives.