Low-Level Design (LLD / OOD)
Object-oriented system design at the class level. Machine-coding round preparation: classic problems with full solutions, class diagrams, design-pattern application, and trade-off discussion.
The LLD Interview Framework
How to approach a 45-minute LLD round: the 6-step framework, scoping questions, when to code vs diagram, anti-patterns, and how interviewers evaluate.
Design Pattern Quick Reference (Applied)
The GoF patterns re-grouped by the LLD trigger that should make you reach for each one — Strategy, Factory, Builder, Observer, State, and the rest.
Concurrency Considerations in LLD
When the LLD round expects thread-safe code, and the toolkit: synchronized, ReentrantLock, ReadWriteLock, ConcurrentHashMap, atomics, BlockingQueue, and immutability.
Design a Parking Lot
The most common LLD problem worldwide. Multi-floor lot, typed spots and vehicles, ticketing, pricing strategy, and availability notifications.
Design an Elevator System
Scheduling strategies (FCFS, SCAN, LOOK, nearest-car), elevator state machine, button commands, and multi-car controllers.
Design a Library Management System
Books vs book-items (copies), members, loans and reservations, fine calculation, and overdue notifications.
Design a Vending Machine
The classic State-pattern problem: Idle / HasMoney / Dispensing / OutOfStock states, payment strategy, and inventory.
Design a Tic-Tac-Toe / Chess Game
Polymorphic piece movement, board modeling, move validation per piece, undo via Command, and the game state machine.
Design a Snake & Ladder Game
Board, snakes/ladders, dice strategy, players, and the turn loop — a compact warm-up problem.
Design an ATM
ATM state machine, transactions as commands for logging/replay, denomination dispensing via Chain of Responsibility, and bank integration.
Design a Movie Ticket Booking System (BookMyShow)
Cinemas, shows, seats, and the central concurrency challenge: two users booking the same seat. Optimistic vs pessimistic locking and seat-hold TTL.
Design a Ride-Sharing System (Uber / Ola)
Rider/driver model, ride state machine, surge-pricing and matching strategies — the LLD slice of a hybrid LLD/HLD problem.
Design a Logger Library (like Log4j / SLF4J)
The pattern-composition showcase: Chain of Responsibility, Strategy, Singleton, Observer, and Decorator combined into one logging framework.
Design a Rate Limiter
Token Bucket, Leaky Bucket, Fixed Window, Sliding Window Log/Counter — the algorithms in depth, behind a Strategy interface. The highest-leverage senior problem.
Design an LRU / LFU Cache
O(1) LRU via HashMap + doubly-linked list, and the harder O(1) LFU via frequency lists plus a minFreq pointer. Eviction as a Strategy.
Design a Pub/Sub System (in-memory)
Broker, topics, publishers/subscribers, concurrent delivery, delivery semantics, and backpressure — the in-memory precursor to Kafka.
Design a URL Shortener (LLD slice)
Encoding strategies (base62 vs hash vs counter), the class model, and collision handling. Scaling is deferred to the HLD module.
Design a Notification System
Channel abstraction (Email/SMS/Push/InApp), templates, retry policy, and channel fallback via Chain of Responsibility.
Design a File System (in-memory)
The Composite-pattern problem: directories contain files and directories. mkdir/touch/ls/cd/rm/mv/cp over an in-memory tree.
Design a Stopwatch / Task Scheduler
Clocks, timers, scheduled tasks, and scheduling strategies (FIFO, priority, cron) with tasks modeled as commands.
How to Practice LLD
How many problems to solve, the internalizable template, 45-minute time-boxing, common mistakes, and how to signal senior.