Learn system design for free
Two open-source reading lists cover high-level design, low-level design and 78 interview problems between them. Here is what is inside each one, the order to read them in, and what to watch out for.
- TL;DR and key numbers
- HLD and LLD, from zero
- Why a structured path matters
- Repo 1: Awesome System Design Resources
- Repo 1: the 45 interview problems
- Repo 2: Awesome Low-Level Design
- Repo 2: the 33 interview problems
- A study plan that uses both
- How to answer a design interview question
- So, can you learn it in a structured way for free?
- Caveats
- FAQ
- Glossary and sources
TL;DR
If you want to learn system design without paying for a course, two GitHub repos by Ashish Pratap Singh (AlgoMaster) give you a ready-made syllabus. Awesome System Design Resources covers high-level design: the concepts, the trade-offs and 45 interview problems. Awesome Low-Level Design covers the class-level side: OOP, design principles, 22 design patterns, concurrency and 33 interview problems, with code solutions in six languages.
Star counts from the GitHub API on 27 Oct 2026 (42,886 and 27,617). Problem counts are the items listed under each README's "Interview Problems" heading.
HLD and LLD, from zero
"System design" usually means two different skills, and interviews test them separately. One repo covers each.
High-level design (HLD)
- The big picture: which services exist and how they talk
- Load balancers, caches, databases, queues, CDNs
- Questions like "Design WhatsApp" or "Design a URL shortener"
- You draw boxes and arrows and defend the trade-offs
Low-level design (LLD)
- The inside of one component: classes, interfaces, objects
- OOP, SOLID, design patterns, concurrency
- Questions like "Design a parking lot" or "Design an LRU cache"
- You write working, extensible code
A simple way to remember it: HLD decides what the system is made of; LLD decides how one piece is written. A URL shortener's HLD has an API server, a database and a cache. Its LLD is the class that generates and stores short codes.
Why a structured path matters
System design material is everywhere: blog posts, YouTube videos, conference talks, engineering blogs. The problem is order. If you read about Kafka before you know why queues exist, or try "Design Uber" before you understand caching and sharding, nothing sticks.
What these repos fix
- A sequence. Both READMEs are ordered from fundamentals to applied topics to interview problems.
- One link per idea. Each concept is a single link to an article that explains it, mostly on algomaster.io (38 algomaster.io and 27 AlgoMaster blog links in the system design README, 72 in the LLD one; our count).
- Difficulty tiers. Interview problems are split into Easy, Medium and Hard, so you know where to start.
Repo 1: Awesome System Design Resources
github.com/ashishps1/awesome-system-design-resources. In its own words: "Learn System Design concepts and prepare for interviews using free resources." If you are new, the README itself points you first to an article called System Design was HARD until I Learned these 30 Concepts.
What the README covers, in order
| Section | Links | Examples |
|---|---|---|
| Core Concepts | 9 | Scalability, Availability, SPOF, CAP Theorem, Consistent Hashing |
| Networking Fundamentals | 8 | OSI Model, DNS, Proxy vs Reverse Proxy, TCP vs UDP, Load Balancing |
| API Fundamentals | 8 | REST vs GraphQL, API Gateway, WebSockets, Webhooks, Rate Limiting |
| Database Fundamentals | 9 | ACID, SQL vs NoSQL, Indexes, Sharding, Replication, Bloom Filters |
| Caching Fundamentals | 5 | Caching strategies, Cache eviction policies, CDN |
| Asynchronous Communication | 3 | Pub/Sub, Message Queues, Change Data Capture |
| Distributed Systems & Microservices | 8 | Heartbeats, Service Discovery, Consensus, Distributed Locking, Gossip, Circuit Breaker |
| Architectural Patterns | 5 | Client-Server, Microservices, Serverless, Event-Driven, Peer-to-Peer |
| System Design Trade-offs | 12 | Vertical vs horizontal scaling, strong vs eventual consistency, REST vs RPC, long polling vs WebSockets |
Link counts are our count of the README's bullet links per section (Oct 2026); the README changes over time.
Beyond the concepts
- A guide on how to answer a system design interview problem.
- Courses, a newsletter, books, 7 YouTube channels, 6 must-read engineering articles and 10 distributed systems papers.
- A
diagrams/folder and animplementations/folder with code in Java and Python (for example, consistent hashing).
Repo 1: the 45 interview problems
The "System Design Interview Problems" section lists 45 questions in three tiers. These are the classic "design X" questions, the kind product companies ask in system design rounds.
Easy · 10
- URL Shortener like TinyURL
- Autocomplete for Search Engines
- Load Balancer, CDN
- Parking Garage, Vending Machine
- Distributed Key-Value Store, Distributed Cache
- Authentication System, UPI
Medium · 23
- WhatsApp, Spotify, Instagram
- Notification Service, Job Scheduler
- Tinder, Facebook, Twitter, Reddit
- Netflix, YouTube, Google Search
- Amazon, TikTok, Shopify, Airbnb
- Rate Limiter, a Kafka-like message queue
Hard · 12
- Location-based service like Yelp, Uber, DoorDash-style food delivery
- Google Docs, Google Maps, Zoom, Dropbox
- BookMyShow-style ticket booking, a distributed web crawler
- A code deployment system, S3-like cloud storage, a distributed locking service
Where to start: the URL shortener. It is small enough to finish in one sitting, and it touches almost every core concept: hashing, a database choice, caching, scaling reads and handling collisions.
Repo 2: Awesome Low-Level Design
github.com/ashishps1/awesome-low-level-design. In its own words: "Learn Low Level Design (LLD) and prepare for interviews using free resources." It covers OOP fundamentals, design patterns, UML, concurrency and LLD interview questions.
| Section | Links | What you learn |
|---|---|---|
| Start Here | 2 | How to learn LLD, 15 must-know OOP concepts |
| OOP Fundamentals | 7 | Classes and objects, enums, interfaces, encapsulation, abstraction, inheritance, polymorphism |
| Class Relationships | 4 | Association, aggregation, composition, dependency |
| Design Principles | 5 | DRY, YAGNI, KISS, SOLID (with pictures and with code) |
| Design Patterns | 22 | Creational (Singleton, Factory, Builder…), structural (Adapter, Decorator, Proxy…), behavioural (Observer, Strategy, State…) |
| UML | 5 | Class, use case, sequence, activity and state machine diagrams |
| Concurrency & Multi-threading | 18 | Threads, synchronisation primitives, deadlocks and race conditions, concurrency patterns |
Our count of the README's bullet links per section (Oct 2026). Concurrency = 5 + 7 + 2 + 4 across its four sub-sections.
Code, not just reading: the repo's solutions/ folder has implementations in C++, C#, Go, Java, Python and TypeScript, plus folders for class diagrams, design patterns and OOP examples.
Repo 2: the 33 interview problems
The "Low Level Design Interview Problems" section lists 33 questions, plus a separate list of 9 concurrency problems.
Easy · 7
- Parking Lot, Stack Overflow
- Vending Machine, Coffee Vending Machine
- Logging Framework, Traffic Signal Control
- Task Management System
Medium · 15
- ATM, LinkedIn, LRU Cache
- Tic Tac Toe, Pub-Sub System
- Elevator, Car Rental, Online Auction
- Hotel Management, Digital Wallet
- Airline, Library and Restaurant Management
- A Facebook-like social network, Concert Ticket Booking
Hard · 11
- CricInfo, Splitwise, Chess, Snake and Ladder
- An Uber-like ride-sharing service, Course Registration, Movie Ticket Booking
- An Amazon-like store, a stock brokerage, a Spotify-like music service, a Swiggy-like food delivery
Where to start: the parking lot. It is the most common LLD warm-up and exercises enums, inheritance, a strategy for picking a spot and a little concurrency.
A study plan that uses both
A suggested order. The pacing is ours, not the repos'; adjust it to your time.
OOP and SOLID first
Repo 2: Start Here, OOP Fundamentals, Class Relationships, Design Principles. These are the vocabulary for everything after.
Core concepts and networking
Repo 1: Core Concepts, then Networking and API Fundamentals. Know what scalability, availability and a load balancer mean before designing anything.
Data, caching, async
Repo 1: Database, Caching and Asynchronous Communication. Most HLD answers are decisions about these three.
Design patterns
Repo 2: the 22 patterns. Get Singleton, Factory, Builder, Observer, Strategy and State solid first; skim the rest.
Easy problems on both sides
URL shortener (HLD) and parking lot (LLD). Write the design yourself first, then read the solution.
Trade-offs, then Medium and Hard
Repo 1: the 12 trade-off links, distributed systems, architectural patterns. Then work up the Medium and Hard lists on both repos, plus concurrency.
How to answer a design interview question
Both repos link to an answering framework: one for HLD and one for LLD. Read them before you practise. The common shape of a good answer:
- Clarify the requirements: what must it do, how many users, what matters most.
- Sketch the main pieces (HLD) or the main classes (LLD) before any detail.
- Go deep on one or two parts the interviewer cares about.
- Name the trade-offs you made and what you would change at a bigger scale.
This summary is ours; the linked articles have the full frameworks.
Between them, the two repos give you a complete, ordered syllabus and 78 practice problems at no cost. What they don't give you is practice under pressure: reading a solution is not the same as designing one with someone asking "what if traffic grows 10×?". Use the problem lists, but write your own answer before reading any solution, and do mock interviews with a friend.
Caveats
- Mostly links to one site. Most concept links go to algomaster.io, the author's own platform. The articles we opened were free to read; some chapters there also show a premium-only video (we saw one on the Bloom Filters chapter).
- Not every link is AlgoMaster. A few point elsewhere (Failover and Fault Tolerance go to vendor blogs), so quality varies a little.
- Lists change. Counts here are from October 2026. The system design repo was last pushed in February 2026, the LLD repo in August 2026.
- Licence. Both repos are GPL-3.0. Reading and learning is fine; reusing their code in your own project carries GPL obligations.
- No guarantee about interviews. "Companies ask these" is common wisdom, not a statistic. Treat the lists as good practice, not a leaked question bank.
FAQ
I'm a fresher. Do I need HLD?
Many entry-level interviews focus on DSA and LLD. HLD becomes more common as you get more senior, but knowing the core concepts helps in any backend role.
Which repo should I start with?
LLD's OOP and design principles first, then system design's core concepts. Section 8 has a full order.
Are the solutions in my language?
The LLD repo's solutions are in C++, C#, Go, Java, Python and TypeScript. The system design repo's implementations are in Java and Python.
How long will this take?
It depends on your pace. Going through every link and attempting a few problems per tier is several weeks of steady work.
Is it really free?
The repos and the linked articles we checked are free. Some linked courses and some videos on AlgoMaster are paid; you don't need them to follow the reading lists.
Glossary
- HLD
- High-level design: the services, data stores and connections that make up a system.
- LLD
- Low-level design: the classes, interfaces and code structure of one component.
- Scalability
- How well a system handles more users or data by adding resources.
- CAP theorem
- A distributed system can't guarantee consistency, availability and partition tolerance all at once.
- Sharding
- Splitting a database across machines so each holds part of the data.
- SOLID
- Five object-oriented design principles that keep code easy to change.
- Design pattern
- A named, reusable solution to a common code design problem, like Singleton or Observer.
- UML
- A standard way to draw classes and their relationships.
- ashishps1/awesome-system-design-resources. README and repository data, read 27 Oct 2026.
- ashishps1/awesome-low-level-design. README and repository data, read 27 Oct 2026.
- GitHub REST API (
api.github.com/repos/ashishps1/…) for star counts, licences and folder listings, 27 Oct 2026. - algomaster.io. The author's site, where most concept links lead.