Learn infrastructure engineering by building the real thing.
First Principles is a self-paced curriculum of 17 real systems — rate limiters, load balancers, container runtimes, Raft-replicated stores — built from scratch in Go, Rust, or TypeScript. Backed by an interactive knowledge base and an AI assistant that actually knows your content.
- systems built from scratch
- 17
- systems built from scratch
- knowledge-base chapters
- 11
- knowledge-base chapters
- interactive topics
- 70+
- interactive topics
- local, runs in your browser
- 100%
- local, runs in your browser
Roadmap
17 Levels
Rate Limiter
CompletedNetworking
Redis Clone
In ProgressDatabases & Storage
Service Discovery
In ProgressDistributed Systems
Tiny Docker Runtime
Not StartedContainers
Built for engineers who learn by shipping, not skimming.
Project-based, not video-based
Every concept is paired with a real system to build from scratch in Go, Rust, or TypeScript — not another lecture to sit through.
Local-first and private
The whole app runs on IndexedDB in your browser. No login, no tracking, no server round-trips.
Depth over breadth
A coherent progression from OS fundamentals through distributed systems to platform engineering — not a grab-bag of tutorials.
An AI partner that knows your content
Answers grounded in the app's own levels, topics, and notes — not a generic chatbot.
Everything in one place
Project specs, a knowledge base, notes, tasks, reading lists, and progress dashboards — no five-tool juggling act.
17 real systems, built from scratch.
Every level ships with a tiered spec — minimum requirements through production features — real-world context, failure scenarios, benchmarks to hit, a source-reading list, and a step-by-step build guide with working code in Go, Rust, or TypeScript.
Shell & Systems Programming
Tiny Bash
Shell & Systems Programming
Unix Utilities
Networking
Netcat Clone
Networking
HTTP Server
Networking
Reverse Proxy
Networking
Rate Limiter
Databases & Storage
Redis Clone
Distributed Systems
BullMQ Clone
Distributed Systems
Cron Scheduler
Distributed Systems
Service Discovery (Consul)
Networking
Load Balancer (HAProxy)
Networking
API Gateway (Kong)
Containers & Orchestration
Tiny Docker Runtime
Containers & Orchestration
Tiny Railway
Containers & Orchestration
Tiny Nomad
Security
Tiny Vault
Containers & Orchestration
Mini Brimble
Every level is more than a spec sheet.
- Tiered spec: minimum → recommended → advanced → production features
- Real-world systems this pattern powers in production
- Concrete failure scenarios and benchmarks to hit
- A curated source-code reading list
- Step-by-step build guide with real, working code
- Article, video, and interview-question prompts
func (l *Limiter) Allow(key string) bool { now := time.Now().UnixNano() bucket := l.buckets[key] // refill tokens based on elapsed time elapsed := float64(now - bucket.last) / 1e9 bucket.tokens = min(l.capacity, bucket.tokens+elapsed*l.rate) if bucket.tokens < 1 { return false } bucket.tokens-- return true}An interactive knowledge base, not a wall of markdown.
11 chapters, ~70 topics — each with a concept explanation, an analogy-driven mental model, real-world examples, common mistakes, and production lessons. Browsable, searchable, and built to be read in five minutes, not fifty.
Go vs. Node.js, side by side
The Concurrency chapter covers Go's goroutine scheduler and Node's event loop as two variants of the same topic, with a toggle to flip between them.
Real diagrams, not ASCII art
TCP handshakes, the LSM-tree write path, Raft leader election, CAP theorem, Linux namespaces — hand-built, theme-aware diagrams for the ideas that need a picture.
Cross-linked with the curriculum
Every topic links to the level(s) that put it into practice, and every level links back to the topics behind it — so theory and the build stay connected.
- 00
Foundations and Method
The mental models everything else builds on
- 01
Operating Systems
Processes, memory, files, signals
- 02
Networking
TCP, HTTP, reverse proxies, load balancing
- 03
Concurrency
Go goroutines vs. the Node.js event loop
- 04
Databases and Storage Engines
WALs, indexing, concurrency control
- 05
Infrastructure Components
Rate limiters, queues, gateways, service discovery
- 06
Distributed Systems
CAP, Raft, sharding, consistent hashing
- 07
Platform Engineering
Containers, deploy pipelines, PaaS internals
- 08
Production Engineering
HA, observability, deployment strategy, chaos
- 09
Security Engineering
Threat modeling, secrets, mTLS, supply chain
- 10
Career Building
Getting known for infrastructure engineering
Ask questions. Get answers grounded in what you’re studying.
A slide-out chat, powered by your own free Google Gemini API key — no subscription, no middleman server. It’s the one deliberate exception to the app’s local-first design, and it only runs when you ask it to.
Grounded in your own content
Before answering, it automatically pulls in relevant context from your Levels, Topics, and Notes — so answers point back to material you already have.
Multiple named, searchable sessions
Every conversation is saved locally as its own session, with a searchable list — no more losing a good answer in one giant thread.
Syntax-highlighted responses
Code in AI replies is parsed and highlighted automatically, matching the same theme-aware highlighting used across the rest of the app.
One app to run the whole self-study program.
Notion-style notes
A rich-text editor on every level — bold, headings, task lists, blockquotes, links, and live syntax-highlighted code blocks. Clean list view, full-page editor, autosave.
Dashboards, streaks, and a timeline
Progress by level, current streak, resources completed, articles written — plus an auto-generated activity timeline every time you write a note, finish a task, or complete a resource.
17
levels
🔥 4
day streak
62%
complete
Keyboard-first navigation
A global ⌘K command menu jumps to any level, topic, or page instantly. A dedicated search page covers every entity in the app — levels, topics, notes, tasks, resources.
Local-first, by design — not as a compromise.
This isn’t a web app with a database behind it. It’s a progressive, browser-native app: your levels, notes, tasks, and study history live in your browser’s own storage. Close the tab, come back next week, everything is exactly where you left it.
Everything stored locally
IndexedDB in your browser. Nothing is uploaded anywhere by default.
No account, no sign-up
No login screen, no password, no server round-trip for core functionality.
One-click full data export
Export every level, note, task, and log to a single JSON file, any time.
Light & dark mode
A clean interface that adapts to how you actually like to read at 11pm.
Export all data
first-principles-export-2026-07-09.json
Storage
IndexedDB · on this device only
Account
None required
17 systems to build.
0 servers of your own.
Every level, note, and study log lives in your browser’s own storage — not on a server we run.
Stop reading about infrastructure. Start building it.
Free, local-first, no account required. Open the app and pick your first level.
