Notes / System Design

System Design

Principal/Staff-level design references — requirements, architecture, deep dives, and trade-offs at scale. Structured for L6/L7 MAANG interviews.

140 notes

Overview

System Design

A curated collection of Principal/Staff-level system design references, organized for MAANG interview preparation. Every design is grounded in lived production experience with Grafana Cloud, Alloy, Mimir, Loki, and Tempo at global scale.

Purpose

This directory holds deep-dive system design documents structured for L6/L7 interview practice. Each note covers one system end-to-end: requirements clarification, high-level architecture, component deep dives, self-observability of the system, and trade-offs at 10x scale.

The collection is not generic — every design explicitly brings observability in as a first-class structural concern, not an afterthought. That framing is the unfair advantage at MAANG: most candidates bolt monitoring on at the end; these designs wire SLOs, trace propagation, cardinality constraints, and alert routing into the architecture from the start.

The notes are accessible at /notes/system-design/ on the site but are excluded from the main notes index — they are an internal prep resource, not public reference material.

How to Use Each Note

Every document follows the same five-step interview format:

  1. Clarify requirements — scale envelope, signal types, consistency model, multi-tenancy needs. Spend the first 5 minutes here; the answers change the entire design.
  2. High-level design — components and data flow at the whiteboard level.
  3. Deep dive — storage layer, critical path, failure modes, protocol choices.
  4. Observability of the system itself — how you would monitor the thing you just designed. This is the differentiator.
  5. Trade-offs at 10x scale — what breaks first, what you would change, cost vs reliability tension.

Practice each section independently before running the full design end-to-end under time pressure.

Chapters are numbered per Part and restart at 1 in every Part — Part 15’s Chapter 1 is not the same as Part 02’s Chapter 1. Part 15 holds every full case-study design in this book, using the five-step format above — several of them (the Observability Platform cluster, the distributed-systems staples, the AIOps/cost/incident systems) predate the rest of this curriculum and are the reason this book started as an interview-prep collection in the first place. Parts 01–14 and 16 are concept/curriculum chapters — the graduate-level architecture theory a Principal/Staff candidate is expected to reason from — and link out to existing designs, patterns, and platform notes elsewhere in this wiki rather than duplicating them.

Parts

01 — Engineering Mindset

The foundational habits of mind the rest of this curriculum builds on — what actually changes at the L6/L7 bar, the systems-thinking lens, and the quantitative vocabulary (latency, throughput, queueing theory) used in every later Part.

02 — Distributed Systems Theory

The general distributed-systems theory that Part 15’s “Distributed Systems Practice” case studies (message queue, KV store, stream processor, rate limiter, consensus) put into practice — read this Part for the “why,” Part 15 for “build it end-to-end.”

03 — Storage Systems

Database internals underneath the design decisions in Part 02 and Part 15 — see dbms/ for the deeper reference book this Part draws on.

04 — Networking

The transport and API layer every design in this book sits on — see networks/ for fully-written OSI/protocol/gRPC/TLS reference material this Part links into rather than repeats.

05 — Messaging Systems

Message-passing and event-driven building blocks — several already have real applied practice elsewhere in this wiki, linked below.

06 — Caching

07 — Reliability Engineering

Reliability theory underneath the SLO/error-budget and resilience work Amit already ships in production — heavy link-out to real content below.

08 — Observability

Curriculum coverage for completeness — almost every concept here is already fully written in observability/; this Part is a thin pointer layer, not a duplicate.

09 — Cloud Architecture

10 — Security

11 — Scalability

12 — Architecture Patterns

13 — AI-era System Design

14 — Interview Frameworks

15 — Complete Case Studies

Full end-to-end designs using the five-step format above. The first three groups below predate the rest of this curriculum — they’re the original interview-prep collection this book grew out of; the rest are the case studies added to round out the L6/L7 curriculum’s coverage. Chapters are numbered 1–41 straight through this Part, regardless of which group they sit in below — the bold group labels are organizational, not chapters of their own.

16 — Principal Engineer Topics

The leadership and organizational layer above pure system design — what separates a Principal from a Staff-plus-strong-technical-skills engineer.

Common

Reusable engineering concepts — as opposed to prep/process material above — live inside observability/‘s book-chapter structure instead, shared with the pattern library too. For example, 3 — Push-Based vs Pull-Based Ingestion used to live nested under the telemetry ingestion pipeline design, then moved to a shared concepts/ shelf once it became clear the idea applies well beyond that one design; it now lives in observability/02-pipeline/ as part of the observability book, and this design links in rather than owning it.

Adding a New Design

  1. Create a new chapter directory under the relevant Part, numbered for its position within that Part — chapter numbers restart at 1 in every Part, they don’t continue the previous Part’s count: 0X-part-slug/NN-system-slug/.

  2. Add a content file named for the chapter (<system-slug>.md — never README.md, and not numbered itself — only the directory carries the NN- prefix) with the required frontmatter, prefixing title with Chapter <N> —:

    ---
    title: "Chapter <N> — <System Name>"
    description: "<One-line summary of the design focus and scale target>"
    tags: ["system-design", "<domain>", "maang-prep"]
    updated: <YYYY-MM-DD>
    hidden: false
    ---
    
  3. Structure the body using the five-step format above, and prefix the first ## heading the same way: ## Chapter <N> — <System Name>.

  4. Update this Part’s entry in the Parts section above, prefixing the link text with Chapter <N> — to match.

Metadata

DimensionDetail
AuthorAmit Singh
ScopeMAANG interview preparation — not production documentation
AccessInternal — individual design notes are hidden per-note; this root index is public
Landing pagesrc/pages/notes/system-design/index.astro/notes/system-design/
View as page →