Join Free Newsletter

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](https://algomaster.io/learn/lld) ## 🧱 OOP Fundamentals - [Classes and Objects](https://algomaster.io/learn/lld/classes-and-objects) - [Enums](https://algomaster.io/learn/lld/enums) - [Interfaces](https://algomaster.io/learn/lld/interfaces) - [Encapsulation](https://algomaster.io/learn/lld/encapsulation) - [Abstraction](https://algomaster.io/learn/lld/abstraction) - [Inheritance](https://algomaster.io/learn/lld/inheritance) - [Polymorphism](https://algomaster.io/learn/lld/polymorphism) ## 🔗 Class Relationships - [Association](https://algomaster.io/learn/lld/association) - [Aggregation](https://algomaster.io/learn/lld/aggregation) - [Composition](https://algomaster.io/learn/lld/composition) - [Dependency](https://algomaster.io/learn/lld/dependency) ## 🧭 Design Principles - [DRY Principle](https://algomaster.io/learn/lld/dry) - [YAGNI Principle](https://algomaster.io/learn/lld/yagni) - [KISS Principle](https://algomaster.io/learn/lld/kiss) - [SOLID Principles with Pictures](https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898) - [SOLID Principles with Code](https://blog.algomaster.io/p/solid-principles-explained-with-code) ## 🧩 Design Patterns | **Creational Patterns** | **Structural Patterns** | **Behavioral Patterns** | | ----------------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | | [Singleton](https://algomaster.io/learn/lld/singleton) | [Adapter](https://algomaster.io/learn/lld/adapter) | [Iterator](https://algomaster.io/learn/lld/iterator) | | [Factory Method](https://algomaster.io/learn/lld/factory-method) | [Bridge](https://algomaster.io/learn/lld/bridge) | [Observer](https://algomaster.io/learn/lld/observer) | | [Abstract Factory](https://algomaster.io/learn/lld/abstract-factory) | [Composite](https://algomaster.io/learn/lld/composite) | [Strategy](https://algomaster.io/learn/lld/strategy) | | [Builder](https://algomaster.io/learn/lld/builder) | [Decorator](https://algomaster.io/learn/lld/decorator) | [Command](https://algomaster.io/learn/lld/command) | | [Prototype](https://algomaster.io/learn/lld/prototype) | [Facade](https://algomaster.io/learn/lld/facade) | [State](https://algomaster.io/learn/lld/state) | | | [Flyweight](https://algomaster.io/learn/lld/flyweight) | [Template Method](https://algomaster.io/learn/lld/template-method) | | | [Proxy](https://algomaster.io/learn/lld/proxy) | [Visitor](https://algomaster.io/learn/lld/visitor) | | | | [Mediator](https://algomaster.io/learn/lld/mediator) | | | | [Memento](https://algomaster.io/learn/lld/memento) | | | | [Chain of Responsibility](https://algomaster.io/learn/lld/chain-of-responsibility) | ## 🗂️ UML - [Class Diagram](https://algomaster.io/learn/lld/class-diagram) - [Use Case Diagram](https://algomaster.io/learn/lld/use-case-diagram) - [Sequence Diagram](https://algomaster.io/learn/lld/sequence-diagram) - [Activity Diagram](https://algomaster.io/learn/lld/activity-diagram) - [State Machine Diagram](https://algomaster.io/learn/lld/state-machine-diagram) ## ⏱️ Concurrency and Multi-threading Concepts ### Concurrency 101 - [Introduction to Concurrency](https://algomaster.io/learn/concurrency-interview/introduction-to-concurrency) - [Concurrency vs Parallelism](https://algomaster.io/learn/concurrency-interview/concurrency-vs-parallelism) - [Processes vs Threads](https://algomaster.io/learn/concurrency-interview/processes-vs-threads) - [Thread Lifecycle and States](https://algomaster.io/learn/concurrency-interview/thread-lifecycle-and-states) - [Race Conditions and Critical Sections](https://algomaster.io/learn/concurrency-interview/race-conditions-and-critical-sections) ### Synchronization Primitives - [Mutex (Mutual Exclusion)](https://algomaster.io/learn/concurrency-interview/mutex) - [Semaphores](https://algomaster.io/learn/concurrency-interview/semaphores) - [Condition Variables](https://algomaster.io/learn/concurrency-interview/condition-variables) - [Coarse-grained vs Fine-grained Locking](https://algomaster.io/learn/concurrency-interview/coarse-vs-fine-grained-locking) - [Reentrant Locks](https://algomaster.io/learn/concurrency-interview/reentrant-locks) - [Try-Lock and Timed Locking](https://algomaster.io/learn/concurrency-interview/try-lock-and-timed-locking) - [Compare-and-Swap (CAS)](https://algomaster.io/learn/concurrency-interview/compare-and-swap) ### Concurrency Challenges - [Deadlock](https://algomaster.io/learn/concurrency-interview/deadlock) - [Livelock](https://algomaster.io/learn/concurrency-interview/livelock) ### Concurrency Patterns - [Signaling Pattern](https://algomaster.io/learn/concurrency-interview/signaling-pattern) - [Thread Pool Pattern](https://algomaster.io/learn/concurrency-interview/thread-pool-pattern) - [Producer-Consumer Pattern](https://algomaster.io/learn/concurrency-interview/producer-consumer-pattern) - [Reader-Writer Pattern](https://algomaster.io/learn/concurrency-interview/reader-writer-pattern) ## ✅ [How to Answer a LLD Interview Problem](https://blog.algomaster.io/p/how-to-answer-a-lld-interview-problem) ## 💻 Low Level Design Interview Problems ### Easy Problems - [Design Parking Lot](problems/parking-lot.md) - [Design Stack Overflow](problems/stack-overflow.md) - [Design a Vending Machine](problems/vending-machine.md) - [Design Logging Framework](problems/logging-framework.md) - [Design Traffic Signal Control System](problems/traffic-signal.md) - [Design Coffee Vending Machine](problems/coffee-vending-machine.md) - [Design a Task Management System](problems/task-management-system.md) ### Medium Problems - [Design ATM](problems/atm.md) - [Design LinkedIn](problems/linkedin.md) - [Design LRU Cache](problems/lru-cache.md) - [Design Tic Tac Toe Game](problems/tic-tac-toe.md) - [Design Pub Sub System](problems/pub-sub-system.md) - [Design an Elevator System](problems/elevator-system.md) - [Design Car Rental System](problems/car-rental-system.md) - [Design an Online Auction System](problems/online-auction-system.md) - [Design Hotel Management System](problems/hotel-management-system.md) - [Design a Digital Wallet Service](problems/digital-wallet-service.md) - [Design Airline Management System](problems/airline-management-system.md) - [Design a Library Management System](problems/library-management-system.md) - [Design a Social Network like Facebook](problems/social-networking-service.md) - [Design Restaurant Management System](problems/restaurant-management-system.md) - [Design a Concert Ticket Booking System](problems/concert-ticket-booking-system.md) ### Hard Problems - [Design CricInfo](problems/cricinfo.md) - [Design Splitwise](problems/splitwise.md) - [Design Chess Game](problems/chess-game.md) - [Design a Snake and Ladder game](problems/snake-and-ladder.md) - [Design Ride-Sharing Service like Uber](problems/ride-sharing-service.md) - [Design Course Registration System](problems/course-registration-system.md) - [Design Movie Ticket Booking System](problems/movie-ticket-booking-system.md) - [Design Online Shopping System like Amazon](problems/online-shopping-service.md) - [Design Online Stock Brokerage System](problems/online-stock-brokerage-system.md) - [Design Music Streaming Service like Spotify](problems/music-streaming-service.md) - [Design Online Food Delivery Service like Swiggy](problems/food-delivery-service.md) ## ⏱️ Concurrency and Multi-threading Problems - [Print FooBar Alternately](https://algomaster.io/learn/concurrency-interview/print-foobar-alternately) - [Print Zero Even Odd](https://algomaster.io/learn/concurrency-interview/print-zero-even-odd) - [Fizz Buzz Multithreaded](https://algomaster.io/learn/concurrency-interview/fizz-buzz-multithreaded) - [Building H2O Molecule](https://algomaster.io/learn/concurrency-interview/building-h2o) - [Design Thread-Safe Cache with TTL](https://algomaster.io/learn/concurrency-interview/design-thread-safe-cache-with-ttl) - [Design Concurrent HashMap](https://algomaster.io/learn/concurrency-interview/design-concurrent-hashmap) - [Design Thread-Safe Blocking Queue](https://algomaster.io/learn/concurrency-interview/design-thread-safe-blocking-queue) - [Design Concurrent Bloom Filter](https://algomaster.io/learn/concurrency-interview/design-concurrent-bloom-filter) - [Multi-threaded Merge Sort](https://algomaster.io/learn/concurrency-interview/multi-threaded-merge-sort) ## 📇 Courses - [Master LLD Interviews - AlgoMaster.io](https://algomaster.io/learn/lld/course-introduction) - [Master Concurrency Interviews - AlgoMaster.io](https://algomaster.io/learn/concurrency-interview) ## 📚 Books - [Head First Design Patterns](https://www.amazon.in/dp/9385889753) - [Clean Code](https://www.amazon.in/dp/B001GSTOAM) - [Refactoring: Improving the Design of Existing Code](https://www.amazon.in/dp/0134757599) ## 📩 Newsletter - [AlgoMaster Newsletter](https://blog.algomaster.io/) ## Additional resources - [Coursera - Object-Oriented Design](https://www.coursera.org/learn/object-oriented-design) - [Coursera - Design Patterns](https://www.coursera.org/learn/design-patterns) - [Github - Awesome Design Patterns](https://github.com/DovAmir/awesome-design-patterns) ## 🤝 Contributing Contributions are welcome! If you'd like to add a new problem, improve existing content, or fix errors: 1. Fork the repository 2. Create a feature branch: `git checkout -b feature/your-feature-name` 3. Commit your changes: `git commit -m 'Add some feature'` 4. Push to the branch: `git push origin feature/your-feature-name` 5. 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!