Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Design

Purpose

This repository is for my personal learning and interview preparation. It teaches system design from basics to advanced production architecture and big-tech interview readiness.

It is a structured study workspace that starts with first principles, then moves into practical architecture topics, end-to-end case studies, low-level design, quizzes, templates, and timed mock interviews.

Use it as a study path, a review reference, and a place to practice explaining tradeoffs clearly.

Who This Is For

This repository is for learners who want to build system design fundamentals, engineers preparing for technical interviews, and experienced developers who want a concise architecture reference. It assumes basic programming experience, but it explains system design concepts from the ground up.

How to Use This Repository

Use the repository as an active study workspace rather than a folder of notes.

Goal Best starting point How to practice
Learn from scratch Fundamentals Read in order, draw each request path, and complete the mini exercises.
Build depth Distributed Systems Connect each mechanism to consistency, failure, observability, and cost.
Prepare for interviews Interview Guide Use templates, timed mocks, and case-study rewrites.
Review quickly Cheatsheets Convert each rule into one interview-ready sentence.
Navigate everything Repository Index Use the generated index to jump by folder.

Table of Contents

Start Here

  1. Read What Is System Design.
  2. Open the Roadmap for the full topic order.
  3. Use Study Plan if you want a weekly schedule.
  4. Use each folder README.md as a local table of contents.
  5. Practice with case studies and mock interviews after you finish the core topics.

Beginner Path

Follow this path if you are new to system design:

  1. Fundamentals
  2. Networking
  3. API Design
  4. Databases
  5. Caching
  6. Scalability
  7. High-Level Design
  8. Quizzes

Focus on intuition, examples, and common mistakes before memorizing patterns.

Deep Study Path

Use this path when you want stronger production architecture judgment:

  1. Distributed Systems
  2. Messaging and Streaming
  3. Storage Systems
  4. Architecture Patterns
  5. Reliability
  6. Observability
  7. Security
  8. Performance
  9. Cloud Infrastructure
  10. AI System Design

For each topic, connect the mechanism to a user-visible requirement, a failure mode, and a metric.

Interview Preparation Path

Use this path when interviews are approaching:

  1. Read Interview Guide.
  2. Work through interview preparation notes.
  3. Review cheatsheets.
  4. Fill in templates by hand.
  5. Redo weak quizzes from quizzes.
  6. Practice explaining tradeoffs out loud.

Case Study Path

Use case studies after you understand fundamentals, databases, caching, scalability, and high-level design. For each case study:

  1. Read only the problem statement first.
  2. Spend 35 to 45 minutes designing without looking at the solution.
  3. Compare your answer with the file.
  4. Rewrite the weakest section: requirements, estimates, APIs, data model, architecture, reliability, security, observability, or tradeoffs.
  5. Repeat the same case one week later.

Mock Interview Path

Use mock interviews when you can already design the common systems slowly. For each mock:

  1. Set a 45-minute timer.
  2. Clarify requirements before drawing.
  3. Estimate only numbers that change the design.
  4. Explain read paths, write paths, and failure paths.
  5. Close with tradeoffs and the first bottleneck.
  6. Score yourself with the rubric.

Mermaid Roadmap

flowchart LR
    Start[Start Here] --> Fundamentals[Fundamentals]
    Fundamentals --> Networking[Networking]
    Networking --> APIs[API Design]
    APIs --> Databases[Databases]
    Databases --> Caching[Caching]
    Caching --> Scalability[Scalability]
    Scalability --> Distributed[Distributed Systems]
    Distributed --> Messaging[Messaging and Streaming]
    Messaging --> Storage[Storage Systems]
    Storage --> Patterns[Architecture Patterns]
    Patterns --> Reliability[Reliability]
    Reliability --> Observability[Observability]
    Observability --> Security[Security]
    Security --> Performance[Performance]
    Performance --> Cloud[Cloud Infrastructure]
    Cloud --> HLD[High-Level Design]
    HLD --> LLD[Low-Level Design]
    LLD --> AI[AI System Design]
    AI --> Cases[Case Studies]
    Cases --> Mocks[Mock Interviews]
Loading

Folder Navigation

Folder What It Covers Best Use
fundamentals Core vocabulary, workflows, state, latency, scale, and interview mindset First pass study
networking Internet basics, HTTP, TLS, WebSockets, gRPC, proxies, and CDNs Understand request flow
api-design REST, GraphQL, gRPC, pagination, idempotency, rate limits, and auth Design service contracts
databases SQL, NoSQL, indexes, transactions, sharding, replication, and storage models Choose data stores
caching Client, CDN, app, database, distributed cache, invalidation, and eviction Reduce latency and load
scalability Load balancing, horizontal scaling, autoscaling, backpressure, and hot partitions Grow systems safely
distributed-systems Consensus, replication, partitions, transactions, clocks, locks, and discovery Reason about coordination
messaging-streaming Queues, pub-sub, streams, consumer groups, delivery semantics, and dead letters Decouple work
storage-systems Object, file, block, blob, content-addressed, video, and log storage Match storage to workload
architecture-patterns Monoliths, microservices, serverless, CQRS, event sourcing, and migration patterns Compare architecture shapes
reliability SLOs, fault tolerance, retries, redundancy, degradation, recovery, and incidents Design for failure
observability Logging, metrics, tracing, alerting, dashboards, and debugging Operate systems
security Authentication, authorization, OAuth, JWT, encryption, secrets, DDoS, and tenancy Protect systems
performance Latency budgets, profiling, throughput, database performance, network performance, and tests Improve speed
cloud-infrastructure Compute, containers, Kubernetes, load balancers, managed databases, IaC, and cost Deploy systems
high-level-design Requirements, estimates, APIs, data modeling, components, scaling, failure, and cost Structure HLD interviews
low-level-design OOD, SOLID, patterns, diagrams, domain modeling, concurrency, and examples Structure LLD interviews
ai-system-design Inference, feature stores, training, RAG, vector search, agents, evaluation, and observability Design AI-backed systems
case-studies End-to-end product and infrastructure designs Practice complete designs
interview-prep Interview frameworks, estimation, drawing, tradeoffs, follow-ups, and senior signals Prepare answers
mocks Timed interview prompts with rubrics Practice performance
quizzes Topic quizzes with explanations Check recall and reasoning
cheatsheets Compact review sheets Review before interviews
templates Reusable design templates Practice structured answers
diagrams Diagram guidance and examples Improve visual explanations
tools Repository maintenance scripts Validate links, index, and quality

Recommended Reading Order

Use this order when you want the cleanest learning path:

  1. Fundamentals
  2. Networking
  3. API Design
  4. Databases
  5. Caching
  6. Scalability
  7. Distributed Systems
  8. Messaging and Streaming
  9. Storage Systems
  10. Architecture Patterns
  11. Reliability
  12. Observability
  13. Security
  14. Performance
  15. Cloud Infrastructure
  16. High-Level Design
  17. Low-Level Design
  18. AI System Design
  19. Case Studies
  20. Mock Interviews

Root Reference Files

Progress Checklist

  • Read the root README and roadmap.
  • Finish fundamentals.
  • Finish networking and API design.
  • Finish databases and caching.
  • Finish scalability and distributed systems.
  • Finish reliability, observability, security, and performance.
  • Finish high-level design and low-level design.
  • Complete at least 10 case studies.
  • Complete at least 5 mock interviews.
  • Review cheatsheets and glossary before interviews.
  • For each completed case, write the first bottleneck, accepted tradeoff, and alert that would catch user pain.
  • Redo weak quizzes as scenarios, not only as multiple-choice recall.

Quality Promise

Every important learning file should help with both understanding and interview performance. A strong pass through a topic should answer these questions:

  • What user workflow or invariant does this concept protect?
  • What is the source of truth, and what data is derived or cacheable?
  • What changes at 10x traffic, 10x data, or a regional failure?
  • What can be stale, duplicated, delayed, denied, or safely degraded?
  • What metric, alert, trace, or audit event proves the design is healthy?
  • What tradeoff was accepted, and what signal would make you revisit it?

For case studies and mocks, do not stop at a diagram. Cover requirements, estimates, APIs, data model, architecture, caching, scaling, reliability, observability, security, bottlenecks, tradeoffs, and follow-up questions.

Repository Checks

Run these commands after changing content:

python tools/fix_markdown_formatting.py
python tools/generate_repo_index.py
python tools/check_links.py
python tools/check_markdown_quality.py

Navigation

⬅ Previous | 🏠 Home | ➡ Next

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages