Skip to content

Repository files navigation

Grokking System Design

The free, open companion to the original Grokking the System Design Interview course by DesignGurus.io, created by Arslan Ahmad and the original Grokking team.

A pattern-based guide to system design interviews. Learn the building blocks once, then apply them to any design question. This repository is a free index, summary, and cheat-sheet collection. For interactive diagrams, video lessons, and worked solutions, see the full course.

GitHub stars Last commit License: CC BY 4.0 PRs welcome


Contents


What is "Grokking System Design"?

"Grok" means to understand something so completely that it becomes intuitive. Grokking System Design is the pattern-based approach to system design interviews: instead of memorizing answers to a fixed list of questions, you learn a small set of reusable building blocks (caching, sharding, replication, consistency models, messaging, and more) that appear again and again across very different systems. Once you know the patterns, any new design problem feels familiar.

This methodology was created by Arslan Ahmad. The original, fully updated course lives at DesignGurus.io.

How to use this repo

  1. Read the interview framework so you have a repeatable structure for any question.
  2. Work through the core patterns until each one is intuitive.
  3. Practice with the question catalog, applying the patterns.
  4. Follow a study roadmap to stay on track.
  5. Go deeper in the full course when you want interactive lessons and worked solutions.

The system design interview framework

A repeatable structure beats memorized answers. The short version:

  1. Clarify requirements and scope (functional and non-functional).
  2. Estimate scale (traffic, storage, bandwidth).
  3. Define the API.
  4. Design the data model.
  5. Sketch the high-level architecture.
  6. Deep dive on one or two components.
  7. Identify bottlenecks and trade-offs.

Full breakdown with timings: cheat-sheets/interview-framework.md.

Core building blocks (patterns)

Pattern What it solves Cheat sheet Learn in depth
Caching Read latency and load on the data store caching.md Course
Load balancing Distributing traffic across servers load-balancing.md Course
Sharding and partitioning Scaling data beyond one machine sharding-partitioning.md Course
Replication Availability and read scaling replication.md Course
Consistency models Correctness under concurrency consistency-models.md Course
Consistent hashing Even distribution with minimal reshuffling consistent-hashing.md Course
Message queues Decoupling and async processing message-queues.md Course
Rate limiting Protecting services from overload rate-limiting.md Course
CAP theorem Reasoning about trade-offs under partitions cap-theorem.md Course
CDN Serving static content close to users cdn.md Course
Database indexing Fast lookups database-indexing.md Course
Bloom filters Cheap "definitely not present" checks bloom-filters.md Course

These are the 12 most essential building blocks. All 24 patterns live in patterns/, including API gateways, quorum, leader election, idempotency, write-ahead logs, circuit breakers, and more. To add a new pattern, copy patterns/_template.md.

System design questions

Forty-plus walkthroughs at the approach-and-trade-offs level, grouped by difficulty. Self-test with the practice question bank, and see full worked solutions in the course.

Basic

Advanced

Expert

AI and LLM systems

The fastest-growing question category, asked heavily by AI labs and increasingly by big tech:

See the full catalog in questions/. To add a new question, copy questions/_template.md.

Company-specific interviews

The same question plays differently at different companies: a rate limiter at Stripe is an API-contract exercise, at xAI it turns into implementation, and at Bloomberg it scales to Terminal fan-out. The company index summarizes how 58 companies run their system design rounds: the signature questions candidates report, what interviewers probe, and which patterns to review for each.

Includes Stripe, OpenAI, Bloomberg, Databricks, Discord, Palantir, Robinhood, Figma, Citadel, LinkedIn, and 48 more, grouped by sector.

Distributed systems deep dives

Case studies of landmark systems, the "how does X work" questions common in senior interviews: Dynamo, Cassandra, BigTable, Kafka, Chubby, GFS, HDFS, Spanner, Raft, MapReduce, ZooKeeper, Memcached at Facebook, Aurora, and DynamoDB. See deep-dives/ for all fourteen, with a suggested reading order.

Cheat sheets

Study roadmaps

Glossary

New to the vocabulary? Start with the glossary.

Recommended reading (DesignGurus blog)

Free, in-depth articles that pair well with this repo.

Start here

Core concepts

Architecture and APIs

Go deeper: the full course

This repo gives you the map. The course gives you the territory: interactive diagrams, video lessons, worked solutions, and practice.

Newsletter

System design and interview tips, straight to your inbox.

Subscribe on Substack

Contributing

Contributions are welcome. See CONTRIBUTING.md. If this repo helps you, please star it so more engineers can find it.

License

Content is licensed under Creative Commons Attribution 4.0 (CC BY 4.0). You may share and adapt with attribution.

About

Maintained by DesignGurus.io, the home of the original Grokking the System Design Interview course by Arslan Ahmad.