LLD Interview Problems
The core of LLD interview preparation. Each problem follows the same framework: gather requirements, identify actors, define use cases, design classes, apply patterns, discuss trade-offs.
Design a Parking Lot
A full low-level design for a multi-floor parking lot: spot assignment strategy, fee calculation, entry/exit gates, and the concurrency bugs that show up when two cars race for the same spot.
Design an Elevator System
Low-level design for a multi-elevator system: the SCAN scheduling algorithm, the elevator state machine, internal vs. external request handling, and priority overrides for emergencies.
Design Snake & Ladder
Low-level design for Snake & Ladder: board representation, snake/ladder mapping, turn management with the Observer pattern, testable dice via injection, and the overshoot edge case everyone forgets.
Design a Hotel Booking System
Low-level design for a hotel booking platform: date-range availability without double-booking, booking concurrency, strategy-based cancellation and pricing policies, and a saga-style book-pay-confirm flow.
Design Splitwise
Low-level design for a Splitwise-style expense-sharing app: split-type strategies (equal, exact, percentage, ratio), balance tracking, and the debt-simplification algorithm that minimizes settlement transactions.
Design a Movie Ticket Booking System
A full low-level design for a BookMyShow-style movie ticket booking system: seat locking under concurrency, dynamic show pricing, and a booking state machine with TTL-based holds.
Design Chess
A full low-level design for a chess engine: per-piece move validation via Strategy, check/checkmate detection, special moves, and undo via the Command pattern.
Design a Logger Framework
Design a pluggable, asynchronous logging framework with multiple levels, appenders, formatters, and rotation strategies — the LLD interview walkthrough.
Design an ATM
Design an ATM's software: card authentication, the state machine that drives a transaction, and the denomination-dispensing algorithm — with atomicity as the central concern.
Design a Cache (LRU/LFU)
Design a fixed-size, thread-safe cache supporting O(1) get/put with pluggable LRU and LFU eviction — the classic data-structure-heavy LLD problem.
Design a Rate Limiter
Design a pluggable API rate limiter — fixed window, sliding window, token bucket, and leaky bucket — with the math and edge cases behind each algorithm.
Design a Pub-Sub System
Design an in-process message broker with topics, wildcard subscriptions, filtering, persistence, and at-least-once delivery — the LLD interview version of building Kafka/SNS, not just the Observer pattern.
Design Tic-Tac-Toe
A low-level design for Tic-Tac-Toe that generalizes to an N×N board with a K-in-a-row win condition, and an O(1)-per-move win detection algorithm instead of a full board scan.
Design a Car Rental System
A full low-level design for a car rental platform: date-range availability checking, a reservation state machine, pricing with insurance and late fees, and damage-report handling.