Low-Level Design
Low-level and object-oriented design in Java: modeling domains with classes, records and sealed types, design principles, concurrency-aware components, and classic interview problems (LRU cache, parking lot, elevator, and more), worked end to end with compiled code.
Start with What Is Low-Level Design? →Foundations and Interview Framework
What low-level design interviews test, a step-by-step framework, and how object-oriented modeling maps to Java classes, records, and sealed types.
Design Principles
SOLID, encapsulation, state machines, error modeling, object graphs and references, and designing for tests.
Concurrent Components
Thread-safe components, in-process event buses, and blocking queues.
Data-Structure-Centric Problems
Caches, key-value stores, rate limiters, loggers, and schedulers designed as reusable components.
- 14.Design an LRU Cache (Low-Level Design)
- 15.Design a Key-Value Store with TTL in Java (Low-Level Design)
- 16.Low-Level Design of a Rate Limiter in Java
- 17.Design a Logger Framework in Java (Low-Level Design)
- 18.Design a Task Scheduler (Low-Level Design)
- 19.Design a Text Editor with Undo and Redo (Low-Level Design)
- 20.Design an In-Memory File System in Java (Low-Level Design)
Domain Modeling Problems
Parking lot, elevator, vending machine, ATM, library, booking, and other classic object-oriented design problems.
- 21.Design a Parking Lot
- 22.Design an Elevator System
- 23.Design a Vending Machine in Java
- 24.Design an ATM in Java
- 25.Design a Library Management System
- 26.Design Tic-Tac-Toe (NxN) in Java
- 27.Design Splitwise (Expense Sharing) in Java
- 28.Design a Movie Ticket Booking System in Java
- 29.Design a Notification Service in Java
Cheat Sheets and Study Plan
An interview checklist and a study plan that maps patterns to problems.
