Free course · updated 2026

System Design, from building blocks to full designs

10 phases and 72 lessons: high-level design, low-level design (OOP, SOLID and design patterns) and AI/ML system design, ending with 22 full interview questions worked through step by step. Every lesson has a diagram, an animation, a spoken interview answer and 4 exercises with answers.

72lessons
22full design questions
288exercises with answers
0lessons you've finished

Phases

  1. Phase 0

    How system design interviews work

    Learn the step-by-step way to answer any design question before you learn the parts. Without a method, even good knowledge comes out messy under pressure.

    4 lessons · 4 must know
  2. Phase 1

    Networking and APIs

    Understand how a request travels from a phone or browser to your servers and back, and how to design the API it calls.

    5 lessons · 3 must know
  3. Phase 2

    Core concepts: scale, reliability and speed

    The ten ideas every high-level design uses: scalability, availability, fault tolerance, load balancing, caching, consistency and CAP, rate limiting, asynchronous processing, and observability.

    9 lessons · 9 must know
  4. Phase 3

    Data: databases, storage and scaling data

    Choose the right database, keep data correct with transactions, make queries fast with indexes, and scale data with replication and sharding.

    9 lessons · 6 must know
  5. Phase 4

    Distributed systems and security

    How services split up and stay correct across a network, how machines agree, and how to keep users and data secure.

    4 lessons · 2 must know
  6. Phase 5

    Low-level design: OOP and SOLID

    The building blocks of good class design: the four pillars of OOP, composition over inheritance, the five SOLID principles, class diagrams, and the concurrency basics LLD questions expect.

    9 lessons · 7 must know
  7. Phase 6

    Design patterns

    Ten patterns that come up again and again in LLD interviews and real code: three for creating objects, three for structuring them, and four for behaviour.

    10 lessons · 7 must know
  8. Phase 7

    Low-level design questions

    Practise the classic LLD questions end to end: requirements, classes, patterns, the key code and concurrency.

    6 lessons · 3 must know
  9. Phase 8

    High-level design questions

    Practise the classic HLD questions with the full framework: requirements, estimates, API, data model, design, deep dives and trade-offs.

    11 lessons · 7 must know
  10. Phase 9

    AI and ML system design

    The design questions AI and ML engineer interviews ask: RAG assistants, recommendations, fraud detection, LLM serving, and the pipeline that trains and ships models.

    5 lessons · 3 must know

The four checks

  1. 1Explain

    Say it in plain words in under a minute, with no notes.

  2. 2Draw

    Sketch the diagram (or class diagram) from memory.

  3. 3Apply

    Use it in a real design question and say exactly where it fits.

  4. 4Trade-offs

    Say what it costs, when not to use it, and the alternative.

A topic is finished when you pass all four checks, not when you finish a video. Be strict: if you needed your notes, it is not ticked yet.

Your progress

Your ticks are saved in this browser only, with no account. To keep them safe, or to carry on on another device, download a progress file and load it there. The file is made on your device and never sent to us.

Frequently asked questions

Is this system design course free?
Yes, all 72 lessons, with every diagram, animation, exercise and answer. There is no sign-up. The extra videos and articles linked from each lesson are free too.
Who is it for?
Students and junior engineers preparing for software engineering interviews, and anyone who wants to understand how large systems are built. It starts from what happens when you type a URL, so no prior system design knowledge is needed.
What is the difference between HLD and LLD?
High-level design (HLD) is the big picture: services, databases, caches, queues and how they scale, as in "design a URL shortener". Low-level design (LLD) is the code inside one service: classes, interfaces, SOLID and design patterns, as in "design a parking lot". This course teaches both, plus AI/ML system design (RAG assistants, recommendation and fraud detection).
I have an interview soon. Where should I start?
Learn the Must know topics first (51 of them), starting with Phase 0's answer frameworks. The night before, read the revision notes with "Must know only" switched on.
How do I track my progress?
Each lesson ends with 4 checks: Explain, Draw, Apply, Trade-offs. Tick each one only when you can do it without notes; a topic counts as done when all 4 are ticked. Your ticks are saved in your own browser only; to keep them safe or move to another device, use Download my progress on this page.