LLD track
Low-Level Design
Turn fuzzy requirements into clean, extensible class designs under interview pressure.
Low-level design interviews test whether you can model a real problem as cooperating objects, defend your trade-offs, and keep the design open for change. This track builds that skill from OOP and SOLID up through design patterns, concurrency, and a repeatable interview framework, all in idiomatic Python.
Principles
The vocabulary every design discussion is built on: OOP, SOLID, coupling and cohesion, and how to sketch it all on a whiteboard.
OOP Foundations
Explain and apply the four pillars of OOP in Python, and choose composition over inheritance with a clear reason.
- ✓EncapsulationHide state behind behaviour so objects protect their own invariants.8m
- ✓AbstractionExpose what an object does, not how it does it.8m
- ✓Inheritance vs CompositionWhy 'has-a' usually beats 'is-a', and when inheritance is still the right call.10m
- ✓PolymorphismOne interface, many implementations: the engine behind most design patterns.8m
- ✓Interfaces, ABCs and Protocols in PythonExpress contracts in Python with abc.ABC and typing.Protocol.10m
SOLID Principles
Spot SOLID violations in a design and refactor them, explaining the concrete benefit of each change.
- ✓Single Responsibility PrincipleA class should have one reason to change.8m
- ✓Open/Closed PrincipleAdd behaviour by adding code, not by editing working code.8m
- ✓Liskov Substitution PrincipleSubtypes must honour the promises of their parent type.9m
- ✓Interface Segregation PrincipleMany small, focused interfaces beat one fat one.7m
- ✓Dependency Inversion PrincipleDepend on abstractions and inject the concrete pieces.9m
Everyday Design Principles
Use DRY, KISS, YAGNI, the Law of Demeter, and coupling/cohesion as quick heuristics to judge a design.
UML for Interviews
Draw a clear class diagram and sequence sketch quickly, using only the notation interviewers actually care about.
Patterns
The classic Gang-of-Four patterns, each framed by the problem it solves and how it shows up in LLD interviews.
Creational Patterns
Pick the right way to construct objects so that creation logic stays flexible and testable.
- ✓SingletonExactly one instance, and why you should be suspicious of it.8m
- ✓Factory MethodLet a method decide which concrete class to create.8m
- ✓Abstract FactoryCreate families of related objects that must be used together.9m
- ✓BuilderAssemble complex objects step by step with validation at the end.8m
- ✓PrototypeCreate new objects by cloning a configured template.7m
Structural Patterns
Compose objects into larger structures and wrap existing code without rewriting it.
- ✓AdapterMake an incompatible interface fit the one your code expects.7m
- ✓DecoratorStack behaviour onto an object at runtime without subclass explosion.8m
- ✓FacadeOne simple front door to a complicated subsystem.7m
- ✓ProxyA stand-in that controls access, caching, or lazy loading.8m
- ✓CompositeTreat single objects and trees of objects the same way.8m
Behavioral Patterns I
Model swappable algorithms, event notification, state machines, and undoable actions cleanly.
Behavioral Patterns II
Build processing pipelines, reusable algorithm skeletons, and clean traversal over collections.
Architecture & Interview
Make designs safe under concurrency, give them clean boundaries, and run the interview itself with a repeatable framework.
Concurrency in LLD
Identify shared mutable state in a design and protect it with the right locking or queueing strategy.
APIs and Error Handling
Design class and service interfaces that are hard to misuse and fail loudly and predictably.
Layering and Clean Architecture
Separate domain logic from storage and delivery so the core design survives infrastructure changes.
Running the LLD Interview
Drive a 45-minute LLD round end to end with a framework that shows structure, judgement, and extensibility.
Then practise
LLD Problems
Classic machine-coding and LLD prompts, each with clarified requirements, a class skeleton, key flows, and the follow-ups interviewers like to push on. Try sketching your own design for 30 minutes before opening the solution.