Course contents

Capstone — what comes after LLD

Sign in to run this lab and save your progress

Learn

You finished the LLD course

40 lessons. ~600 tests. Every design pattern that shows up in interviews. Every classic LLD problem. Your own designed system.

Take a moment

Look at what you can do now that you couldn't 40 lessons ago:

  • Read a new problem and spot the design signals
  • Choose between competing patterns and defend the choice
  • Enforce rules in ONE place, not scattered everywhere
  • Write tests that catch design smells, not just wrong output
  • Explain your reasoning in a way an interviewer would nod at

None of that is trivial. Most working engineers with 5 years of experience can't do all five. You can.

The design.md habit

Of everything in this course, the design.md habit is the biggest single skill you built. Interviewers care about REASONING, not just code.

Keep the habit outside this course:

  • Every non-trivial function or class you write, jot a "why did I do it this way" note in a doc or in the PR description.
  • Every code review you do, ask the author "why not X?" for the alternatives you'd have picked.
  • Every architecture decision you make at work, capture the requirements → alternatives → decision chain in an Architecture Decision Record (ADR).

Your future self, your teammates, and the interviewers who ask "walk me through this" will all thank you.

What next

Depends on your goal. See the lesson objective for pointers into HLD, concurrency, and production concerns.

But the honest answer is: build something real.

Pick a domain. Design it. Implement it. DEPLOY it. Get real users if you can. Nothing in a course matches "your users are hitting a bug you can't reproduce".

You've built the design muscle here. Now go use it in the world.

A note from the author

This course was built to close a specific gap I saw in every LLD tutorial: they teach patterns as if the interview question is "implement the Factory pattern". It isn't. The real interview question is "here's a new problem, design it, defend it". This course drilled the second question, over and over.

If the course was useful, tell someone. If it wasn't, tell me why (and be specific).

Now go build something.

Your task

You finished the LLD course. 40 lessons. Roughly 600 tests written. Every design pattern that shows up in interviews. Every classic LLD problem. Your own designed system.

This lesson has no code. It's a reading lesson pointing at what comes next.


What you built here

  • Module 1 — OOP mechanics: the raw material.
  • Module 2 — SOLID: five principles that shape every design decision you'll ever make.
  • Module 3 — 14 design patterns, with the DECIDE and JUSTIFY framing that separates senior candidates from juniors.
  • Module 4 — 12 LLD problems, each requiring you to read requirements, choose patterns, and defend the choices in design.md.
  • Module 5 — your own capstone + a timed mock interview.

You've done more deliberate design practice than 90% of the candidates you'll interview against.

What you did NOT learn (and where to go for it)

1. High-Level Design (HLD) / System Design

LLD is "design one component or system with tight scope". HLD is "design a whole product at scale — Twitter, YouTube, WhatsApp".

HLD concerns you haven't touched:

  • Sharding + partitioning — splitting data across machines
  • Replication + consistency — CAP theorem, eventual consistency, strong consistency
  • Caching layers — CDNs, Redis, application caches (you touched this in the FSD course's caching module if you took it)
  • Message queues — Kafka, RabbitMQ, event-driven architectures
  • Load balancing — L4 / L7, round-robin, consistent hashing
  • Database choice — SQL vs NoSQL, indexing strategies, read-replicas
  • Rate limiting AT SCALE (you built a single-node one; distributed is harder)

Resources:

  • Designing Data-Intensive Applications (Kleppmann) — the definitive HLD book
  • System Design Interview (Alex Xu, vol. 1 + 2) — interview-focused
  • Grokking the System Design Interview (paid course)

2. Concurrency

Every LLD problem in this course was single-threaded. Real systems aren't. Concurrency concerns you'll hit:

  • Race conditions — two operations interleaving badly
  • Locks + deadlocks — how to synchronize without breaking
  • Atomic operations — CAS, memory ordering
  • Async I/O — asyncio, event loops, callbacks
  • Actor model — one message at a time per actor

Python resources:

  • threading and asyncio standard-library docs
  • Fluent Python (Ramalho) — has an excellent concurrency section
  • The Little Book of Semaphores — free, concept-heavy

3. Production concerns

You built systems that live in-memory in one process. Real systems live in containers on servers with:

  • Persistence — DBs, migrations, backup / restore
  • Observability — logs, metrics, traces, dashboards
  • Deployment — CI/CD, canaries, rollbacks
  • Security — authN, authZ, threat modeling
  • Monitoring — alerts, on-call, incident response
  • Cost — cloud bills, right-sizing, autoscaling

Resources:

  • Site Reliability Engineering (Google) — free online
  • The Phoenix Project / The Unicorn Project (Kim) — narrative intro to DevOps mindset

What's the right next step FOR YOU?

Depends on your goal:

  • Prep for an LLD interview specifically — you're done. Redo modules 4 and 5, timed, until you can hit 45 minutes cleanly.
  • Prep for HLD interviews — Alex Xu vol. 1.
  • Prep for a mid-level → senior transition — Kleppmann. Long book, worth every hour.
  • Ship your own project — pick a domain you care about (like the capstone), build it, DEPLOY it, iterate. Fastest way to learn what production actually means.

About the practice format

What you drilled here was deliberate practice:

  1. Problem you can't solve trivially
  2. Attempt it
  3. Get feedback (tests + AI review)
  4. Try again on a similar problem
  5. Notice patterns across problems

Every learning approach that isn't deliberate practice is slower per hour spent. If you keep this format when self-studying HLD or concurrency — read a problem, try to solve it FIRST, then read the answer — you'll retain 10× more than passive reading.

One last thing

The design.md habit is the biggest single skill you built. Interviewers care about REASONING, not just code. Continue writing a "why did I make this choice" note next to every non-trivial piece of code you write in the wild. Your future self, your teammates, and the interviewers who ask "walk me through this" will all thank you.

Now go build something.


About this lesson's "test"

This lesson has no code exercise. It's a reading lesson. The grader runs a trivial test that just confirms you reached this file — clicking Submit is enough.

Starter files

Preview only — open the lab to edit and run.

files_dir
03-what-comes-after-starter