Course
System Design
Learn to design software the way engineers do, in four parts: Low Level Design and its problems, then High Level Design and its problems. Concepts first, then you practise each one on a real problem. Code in Go first, with TypeScript, Rust, Python, Java and C++ alongside.
one class to many machines ↓
Route ticket
From
one class
To
many machines
- Stations
- 80
- Parts
- 5
- Reading time
- 89–129 h
- Languages
- Go · TypeScript · Rust · Python · Java · C++
Your progress0 / 80
contents
The route
5 parts · 80 stations · 89–129 h
- introduction
- 01What Is Low Level Design?1-2 hStart reading
- oop
- 02OOP Basics: Classes, Objects and the Four Pillars2-3 hStart reading
- 03Class Relationships and UML2-3 hStart reading
- 04Enums and State Machines1-2 hStart reading
- design principles & solid
- 05Design Principles: DRY, KISS, YAGNI1-2 hStart reading
- 06SOLID Principles2-3 hStart reading
- design patterns
- 07Creational Patterns: Factory, Builder, Singleton2-3 hStart reading
- 08Behavioral Patterns: Strategy, State, Command2-3 hStart reading
- 09Structural Patterns: Adapter, Decorator, Proxy2-3 hStart reading
- 10Observer and Event-Driven Design1-2 hStart reading
- architecture & concurrency
- 11Clean Architecture and Dependency Injection2-3 hStart reading
- 12Concurrency in LLD: Locks and Thread Safety2-3 hStart reading
- interview
- 13How to Solve an LLD Interview1-2 hStart reading
Terminal
Ride the whole line and you can take a problem you have never seen, find its real constraints, design it, build it, and say what breaks first. That is the skill, not memorising WhatsApp.