ashishps1 / awesome-low-level-design
Learn Low Level Design (LLD) and prepare for interviews using free resources.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing ashishps1/awesome-low-level-design in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
PreviewThis repository contains resources to learn Low Level Design (LLD) / Object Oriented Design (OOD) and prepare for interviews. It covers OOP fundamentals, design patterns, UML, concurrency and commonly asked interview questions.
👉 For a better and more comprehensive experience, checkout the LLD page at AlgoMaster.io
🧱 OOP Fundamentals
🔗 Class Relationships
🧭 Design Principles
- DRY Principle
- YAGNI Principle
- KISS Principle
- SOLID Principles with Pictures
- SOLID Principles with Code
🧩 Design Patterns
| Creational Patterns | Structural Patterns | Behavioral Patterns |
|---|---|---|
| Singleton | Adapter | Iterator |
| Factory Method | Bridge | Observer |
| Abstract Factory | Composite | Strategy |
| Builder | Decorator | Command |
| Prototype | Facade | State |
| Flyweight | Template Method | |
| Proxy | Visitor | |
| Mediator | ||
| Memento | ||
| Chain of Responsibility |
🗂️ UML
⏱️ Concurrency and Multi-threading Concepts
Concurrency 101
- Introduction to Concurrency
- Concurrency vs Parallelism
- Processes vs Threads
- Thread Lifecycle and States
- Race Conditions and Critical Sections
Synchronization Primitives
- Mutex (Mutual Exclusion)
- Semaphores
- Condition Variables
- Coarse-grained vs Fine-grained Locking
- Reentrant Locks
- Try-Lock and Timed Locking
- Compare-and-Swap (CAS)
Concurrency Challenges
Concurrency Patterns
✅ How to Answer a LLD Interview Problem
<img src="images/interview-template.png" width="350" height="250">💻 Low Level Design Interview Problems
Easy Problems
- Design Parking Lot
- Design Stack Overflow
- Design a Vending Machine
- Design Logging Framework
- Design Traffic Signal Control System
- Design Coffee Vending Machine
- Design a Task Management System
Medium Problems
- Design ATM
- Design LinkedIn
- Design LRU Cache
- Design Tic Tac Toe Game
- Design Pub Sub System
- Design an Elevator System
- Design Car Rental System
- Design an Online Auction System
- Design Hotel Management System
- Design a Digital Wallet Service
- Design Airline Management System
- Design a Library Management System
- Design a Social Network like Facebook
- Design Restaurant Management System
- Design a Concert Ticket Booking System
Hard Problems
- Design CricInfo
- Design Splitwise
- Design Chess Game
- Design a Snake and Ladder game
- Design Ride-Sharing Service like Uber
- Design Course Registration System
- Design Movie Ticket Booking System
- Design Online Shopping System like Amazon
- Design Online Stock Brokerage System
- Design Music Streaming Service like Spotify
- Design Online Food Delivery Service like Swiggy
⏱️ Concurrency and Multi-threading Problems
- Print FooBar Alternately
- Print Zero Even Odd
- Fizz Buzz Multithreaded
- Building H2O Molecule
- Design Thread-Safe Cache with TTL
- Design Concurrent HashMap
- Design Thread-Safe Blocking Queue
- Design Concurrent Bloom Filter
- Multi-threaded Merge Sort
📇 Courses
📚 Books
📩 Newsletter
Additional resources
🤝 Contributing
Contributions are welcome! If you'd like to add a new problem, improve existing content, or fix errors:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
Please make sure to update Readme files and documentation as appropriate.
<p align="center"> <i>If you find this resource helpful, please give it a star and share it with others!</i> </p>