gitmyhub

awesome-low-level-design

Java ★ 25k updated 3mo ago

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

A free collection of object-oriented design problems and Java solutions to help software developers prepare for low-level design interview rounds at tech companies, covering SOLID principles, UML diagrams, and dozens of practice systems.

Javasetup: easycomplexity 3/5

This repository is a free learning resource for Low Level Design (LLD), also called Object Oriented Design — a topic that commonly appears in software engineering job interviews at tech companies. LLD interviews ask candidates to design the classes, objects, and relationships for a specific system from scratch: for example, design a parking lot, a vending machine, or a chess game.

The repository covers the full range of concepts you need: object-oriented programming fundamentals (classes, inheritance, encapsulation, polymorphism), design principles like SOLID (a set of rules for writing maintainable code), UML diagrams (visual blueprints of software structure), concurrency and multi-threading concepts, and — most importantly — a large library of practice interview problems with solutions in Java.

The practice problems are organized by difficulty. Easier ones include designing a parking lot, a logging framework, or a vending machine. Harder problems include designing systems like LinkedIn, an elevator, an online auction, or a chess game. Each problem comes with a problem statement and a worked-out Java implementation.

You would use this if you are a software developer preparing for technical interviews that include a system design or machine coding round, or if you want to strengthen your understanding of object-oriented design patterns in general.

Where it fits