Learn System Design
A free, browsable collection of system design lessons that opens with a roadmap for learning system design by career level. It covers the fundamentals (distributed system characteristics, networking, DNS, load balancing, API design, caching, partitioning, CAP, databases, indexes), trade-offs, how to approach a design interview, and walkthroughs of classic problems. It works as a reference while you practise and as a sample of the teaching style before choosing a course.
Free
Learn System Design page · Sept 2026
Guide
System Design
Design Gurus
Ongoing reference
All
Free
What you will find there
The page is organised like a book you can read in the browser, with a table of contents on the side and reading progress tracking.
The roadmap by career level is the opening article. It explains what system design interviews actually test and what each level is expected to show (junior, mid-level, senior and staff), lists prerequisites, and lays out a three-phase path:
- Build foundations in the primitives
- Study how the primitives compose into patterns
- Practise by designing real systems
It also covers how to practise effectively (active recall, paper or whiteboard, time-boxing, defending designs to critical readers) and common pitfalls, such as calibrating for the wrong level or passively watching "design X" videos. Its FAQ gives preparation ranges by level: roughly 4 to 6 weeks for juniors, 8 to 12 for mid-level and 12 to 16 for senior engineers.
Fundamentals chapters follow: key characteristics of distributed systems, network essentials, real-time communication, DNS, proxies, load balancing, API gateways, API design (REST, idempotency keys, versioning, REST versus gRPC versus GraphQL), rate limiting, caching, CDNs, data partitioning, replication, CAP and PACELC, databases, indexes, Bloom filters, quorum, leader and follower and heartbeat. Each chapter ends with flashcards and an assessment.
Interview material covers trade-offs, how to approach a design interview, a master template, and walkthroughs of problems such as TinyURL, Pastebin, Instagram, Dropbox, Messenger, Twitter, YouTube, a rate limiter, a web crawler, Uber and Ticketmaster.
How to use it
- Read the roadmap first and identify which phase you are in. That decides where to start.
- Use it as a lookup while practising. When you need the definition of a term or a reminder of how a design usually goes, search the table of contents.
- Follow the one concrete next step the roadmap suggests: for example, 30 minutes on the scalability lesson, then explain vertical versus horizontal scaling out loud without notes.
- Track your progress with the reading progress and "mark as read" features.
How it connects to the courses
The lessons here share material and style with the structured courses: System Design Fundamentals for the building blocks, Grokking the System Design Interview for the approach and classic designs, and Advanced System Design Interview, Volume II for problems such as the YouTube likes counter. Reading a few chapters here is a good way to see whether the explanation style suits you before enrolling.
Common questions
Is it free? Yes, the roadmap and the lessons on this page are free to read in the browser.
Where should a complete beginner start? With the roadmap, then the key characteristics of distributed systems chapter, working through in order.
How long does it take to learn system design? The roadmap's own estimates range from 4 to 6 weeks for juniors to 12 to 16 weeks for senior engineers, and more if you are working full time.
Best for: anyone starting system design who wants a free roadmap and a reference to consult while practising.
Ready to start?
Opens on Design Gurus in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.