A comprehensive collection of System Design resources for software engineering interviews. This repository covers Low-Level Design (LLD) with object-oriented programming patterns and High-Level Design (HLD) with distributed systems architecture — everything you need to crack system design interviews at top tech companies like Google, Amazon, Microsoft, Meta, and startups.
- Software Engineers preparing for technical interviews
- Students learning software architecture fundamentals
- Anyone wanting to understand how large-scale systems work
Low-Level Design focuses on object-oriented design, design patterns, and SOLID principles. These concepts are essential for designing maintainable, extensible, and testable code.
| Topic | Description | Link |
|---|---|---|
| Object-Oriented Programming | Encapsulation, Inheritance, Polymorphism, Abstraction | Read → |
| UML Diagrams | Class diagrams, Sequence diagrams, Use case diagrams | Read → |
| SOLID Principles | Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion | Read → |
| Creational Design Patterns | Singleton, Factory, Abstract Factory, Builder, Prototype | Read → |
| Structural Design Patterns | Adapter, Bridge, Composite, Decorator, Facade, Proxy | Read → |
Complete Problem Index — 32+ object-oriented design problems
View All LLD Problems
| Category | Problems |
|---|---|
| Booking Systems | Movie Ticket Booking (BookMyShow), Concert Ticket Booking, Hotel Management, Airline Management |
| Gaming | Chess, Tic Tac Toe, Snake and Ladder |
| Vehicle Systems | Parking Lot, Car Rental, Ride Sharing (Uber), Traffic Signal |
| Infrastructure | Elevator System, ATM, Vending Machine, Coffee Vending Machine |
| Social Platforms | LinkedIn, Facebook, Stack Overflow |
| Data Structures | LRU Cache, Pub-Sub System, Logging Framework |
| E-commerce & Finance | Online Auction, Stock Brokerage, Digital Wallet, Splitwise |
| Content & Education | Library Management, Course Registration, Task Management |
| Food & Delivery | Restaurant Management, Food Delivery (Swiggy) |
| Entertainment | Music Streaming (Spotify), CricInfo |
High-Level Design covers distributed systems architecture, scalability patterns, and system components. These are the concepts asked in system design interviews for designing large-scale applications.
| Topic | Key Concepts | Link |
|---|---|---|
| Introduction to System Design | CAP Theorem, Latency vs Throughput, Availability, Back-of-envelope Calculations | Read → |
| Scalability | Horizontal vs Vertical Scaling, Database Sharding, Consistent Hashing, Replication | Read → |
| Database Design | SQL vs NoSQL, ACID Properties, Indexing, Partitioning, Replication | Read → |
| Caching Strategies | Write-through, Write-back, Cache Eviction (LRU, LFU), CDN, Redis | Read → |
| Load Balancing | Round Robin, Least Connections, Health Checks, Reverse Proxy, L4 vs L7 | Read → |
| Message Queues | Apache Kafka, RabbitMQ, Pub/Sub Patterns, Async Processing | Read → |
| Microservices Architecture | API Gateway, Service Discovery, Circuit Breaker, SAGA Pattern | Read → |
| API Design | REST vs GraphQL, Rate Limiting, OAuth 2.0, JWT Authentication | Read → |
Complete Problem Index — Common system design interview questions
| Problem | Difficulty | Key Components | Link |
|---|---|---|---|
| Design URL Shortener (TinyURL) | Easy | Hashing, Base62 Encoding, Database Design | Read → |
| Design Rate Limiter | Easy | Token Bucket, Sliding Window, Redis | Read → |
| Design Twitter | Medium | Fan-out, Timeline Generation, Caching | Read → |
| Design Notification System | Medium | Push/Email/SMS, Priority Queues, Pub/Sub | Read → |
| Design Chat Application (WhatsApp) | Medium | WebSockets, Message Queue, Delivery Status | Read → |
| Design Search Autocomplete | Medium | Trie Data Structure, Ranking, Caching | Read → |
| Design Video Streaming (YouTube/Netflix) | Hard | HLS/DASH, Video Transcoding, CDN | Read → |
| Design Ride Sharing (Uber/Lyft) | Hard | Geospatial Indexing, Real-time Matching | Read → |
Week 1-2: LLD Fundamentals
├── OOP Concepts
├── SOLID Principles
├── Design Patterns (Creational → Structural)
└── Practice 3-5 LLD Problems
Week 3-4: HLD Fundamentals
├── System Design Introduction
├── Scalability & Databases
├── Caching & Load Balancing
└── Message Queues & Microservices
Week 5-6: HLD Problem Practice
├── Start with Easy (URL Shortener, Rate Limiter)
├── Move to Medium (Twitter, Chat, Notifications)
└── Tackle Hard (Video Streaming, Ride Sharing)
Week 7-8: Mock Interviews & Review
├── Time yourself (45 min per problem)
├── Practice explaining trade-offs
└── Review weak areas
Each topic and problem file includes:
| Resource Type | Description |
|---|---|
| GeeksforGeeks Articles | In-depth written tutorials with code examples |
| YouTube Videos (Hindi) | Video explanations in Hindi for regional learners |
| YouTube Videos (English) | Video explanations from top educators |
| Diagrams & Tables | Visual representations of architectures and comparisons |
| Trade-off Analysis | Discussion of design decisions and alternatives |
Contributions are welcome! Here's how you can help:
- Add new problems — Follow the existing format
- Fix errors — Submit a PR for any mistakes
- Improve explanations — Add diagrams or clarify concepts
- Update links — Replace broken links with working ones
This project is licensed under the MIT License — feel free to use it for your interview preparation!
If this repository helped you prepare for your interviews, please consider:
- Starring this repository
- Sharing with others preparing for interviews
- Opening issues for questions or suggestions