mirror of
https://github.com/ashishps1/awesome-low-level-design.git
synced 2026-06-23 00:03:09 -06:00
Learn Low Level Design (LLD) and prepare for interviews using free resources.
https://algomaster.io
awesome
design-patterns
interview
interview-practice
interview-questions
lld
low-level-design
machine-coding
object-oriented-programming
oops
solid-principles
uml
- Java 25.6%
- Python 20.6%
- C# 19.8%
- C++ 18.6%
- Go 10.6%
- Other 4.8%
|
|
||
|---|---|---|
| class-diagrams | ||
| design-patterns | ||
| images | ||
| oop | ||
| problems | ||
| solutions | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
This 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
💻 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.
If you find this resource helpful, please give it a star and share it with others!