awesome-low-level-design README

The project's README from github.com/ashishps1/awesome-low-level-design. As one markdown file: README.md.

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!

awesome-low-level-design (ashishps1/awesome-low-level-design)

Searching Databaseโ€ฆ

What is this?A curated collection of free resources for learning Low Level Design (LLD) / Object-Oriented Design and preparing for LLD interview rounds.
Is this a tutorial, a problem set, or both?It is both: conceptual notes on OOP, design patterns, UML and concurrency, plus a graded list of machine-coding interview problems with solutions.
Where should a beginner start?Start with the 'How to Learn LLD' guide and the '15 Must-Know OOP Concepts' section at the top of the README, then move into OOP fundamentals and design patterns.
Who is this aimed at?Software engineers preparing for machine-coding and LLD interview rounds, as well as anyone wanting to strengthen OOP design skills.
What concurrency topics does it cover?It covers concurrency fundamentals (threads vs processes, race conditions), synchronization primitives (mutexes, semaphores, CAS), concurrency patterns (producer-consumer, thread pool), and dedicated multi-threading interview problems like Print FooBar Alternately and Design Thread-Safe Blocking Queue.
What kind of design patterns are included?All classic Gang of Four patterns are listed: Singleton, Factory Method, Abstract Factory, Builder, Prototype under Creational; Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy under Structural; and Iterator, Observer, Strategy, Command, State, Template Method, Visitor, Mediator, Memento, Chain of Responsibility under Behavioral.
What example interview problems does the list include?Examples range from easier ones like Design Parking Lot and Design a Vending Machine to harder ones like Design Splitwise, Design an Online Shopping System like Amazon, and Design a Ride-Sharing Service like Uber.
Are there supplementary courses or books recommended?Yes, it links to AlgoMaster.io courses on LLD and Concurrency interviews, an AlgoMaster newsletter, and books such as Head First Design Patterns, Clean Code, and Refactoring.
Creator
ashishps1
Size
15.6 MB
Stars
27.4K
Updated
CommitAug 19
Age
2y
Commits ยท 90 Days