1
Introduction to LLD
What is LLD, importance, difference from HLD, typical interview expectations
2
Software Design Principles
DRY, KISS, YAGNI, modularity, abstraction, encapsulation, cohesion, coupling
3
SOLID Principles
SRP, OCP, LSP, ISP, DIP – definitions, examples in Python/C++
4
UML & Class Diagrams
Unified Modeling Language basics, class diagrams, relationships, associations, aggregations, compositions
5
Creational Design Patterns
Singleton, Factory Method, Abstract Factory, Builder, Prototype – use cases, code samples
6
Structural Design Patterns
Adapter, Decorator, Facade, Composite, Proxy, Bridge, Flyweight – structure, intent, code samples
7
Behavioural Design Patterns
Iterator, Observer, Strategy, Command, Template Method, State, Chain of Responsibility, Visitor, Mediator, Memento – intent, structure, code samples
8
Multithreading & Concurrency
Threads, thread pools, executors, synchronization, locks, deadlocks, prevention, producer-consumer problem (Python threading, C++ std::thread, mutex, etc.)
9
Dependency Injection
Concept, benefits, implementation in Python/C++
10
Best Practices in LLD
Readability, maintainability, extensibility, testability, code reviews, documentation
11
Interview Problems
Parking lot, URL shortener, library management, e-commerce cart, chat app, file system, cache, notification system, event management, inventory, and more (practice with OOP and design patterns)
Last updated 7 months ago