LLD · Roadmap
Low-Level Design
Go from raw object-oriented fundamentals to designing real, interview-ready systems — modeling, UML, SOLID, every design pattern, concurrency, and a graded ladder of machine-coding problems you can actually finish under a timer.
Your progress
0 / 112 topics
Progress saves automatically in this browser — check topics off as you learn them.
The bedrock everything else stands on. Get genuinely fluent here before reaching for patterns.
Outcome — Model any real-world entity as well-encapsulated objects and reason clearly about how they relate.
The step most people skip — turning a fuzzy prompt into the right set of classes before any code exists.
Outcome — Translate a vague problem statement into clean entities, responsibilities, and APIs.
A shared visual language so you can communicate a design — and get feedback — before writing code.
Outcome — Sketch a system's structure and behavior in diagrams anyone on the team can read.
Five principles that turn rigid, change-resistant code into designs that flex with new requirements.
Outcome — Spot violations in existing code and refactor toward flexible, testable structures.
The everyday rules of thumb that guide the hundreds of small decisions patterns don't cover.
Outcome — Make sound, defensible design calls quickly without over-engineering.
Battle-tested solutions to problems that recur in every codebase, grouped by what they're for.
Outcome — Recognize a recurring problem on sight and reach for the right pattern (and know when not to).
Creational
Structural
Behavioral
Architectural
Designing objects that stay correct when many threads touch them at the same time.
Outcome — Reason about shared state and pick the right primitive to keep it safe and live.
Where everything converges — design and code a working system in 60–90 minutes under a timer.
Outcome — Walk into a machine-coding round and ship a clean, extensible solution on the clock.
The approach
Beginner
Intermediate
Advanced
Keeping a design healthy as it grows — spotting decay early and proving the thing actually works.
Outcome — Write code that's safe to change, and keep it that way over time.