ashishps1/awesome-low-level-design

Javaalgomaster.io

Learn Low Level Design (LLD) and prepare for interviews using free resources.

awesomedesign-patternsinterviewinterview-practiceinterview-questionslow-level-designmachine-codingobject-oriented-programmingoopssolid-principlesumllld
Star Growth
Stars
27.5k
Forks
6.6k
Weekly Growth
+121
Issues
146
10k20k
Nov 2023Oct 2024Oct 2025Oct 2026
ArtifactsMaven
README

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.

๐Ÿ Start Here

๐Ÿงฑ OOP Fundamentals

๐Ÿ”— Class Relationships

๐Ÿงญ Design Principles

๐Ÿงฉ 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

Synchronization Primitives

Concurrency Challenges

Concurrency Patterns

โœ… How to Answer a LLD Interview Problem

๐Ÿ’ป Low Level Design Interview Problems

Easy Problems

Medium Problems

Hard Problems

โฑ๏ธ Concurrency and Multi-threading Problems

๐Ÿ“‡ Courses

๐Ÿ“š Books

๐Ÿ“ฉ Newsletter

Additional resources

๐Ÿค 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!