#systems
35 articles
01
·Engineering Process·FREE·8 min read
Upstream Engineering from Scratch — Why Projects Are Won or Lost at Requirements
Requirements, then high-level design, then detailed design — why that order? The reason is a branching factor that multiplies at every stage, making the cost of a late fix grow exponentially. Explained from zero with an analogy, a formula, an interactive plot, and code.
02
·Engineering Process·★ MEMBER·12 min read
The Craft of Requirements — Why "We Built Exactly What They Asked For" Fails
Why shipping precisely what a stakeholder asked for produces software that works and nobody uses. Stated versus latent needs, use cases, turning "fast" and "secure" into numbers, and a set of question templates that expose ambiguity on the spot.
03
·Engineering Process·★ MEMBER·10 min read
Estimation and Scope — The Cone of Uncertainty and How to Negotiate
Estimates miss because a question about a range gets answered with a point. The cone of uncertainty, three-point estimates, why buffers don't add up the way you think, reference class forecasting, and how to turn a deadline conversation into a scope conversation.
04
·Engineering Process·★ MEMBER·9 min read
Architecture Decisions — Telling Apart What You Can Undo From What You Cannot
How to separate the design decisions you can cheaply reverse from the ones you can never take back. Measuring reversibility, writing ADRs that record what you gave up, and a template for putting trade-offs into words — from first principles.
05
·Engineering Process·★ MEMBER·9 min read
Upstream Work in the AI Era — When Code Gets Cheap, What Gets Valuable?
When implementation gets cheap, which parts of the cost remain, and what becomes expensive by comparison? We put the relationship between deciding and reworking into an equation, then design specs for AI as lossy compression of intent — starting from zero assumed knowledge.
06
·Agents·★ MEMBER·PAPER·13 min read
Paper Explained: FreeToken — Treating Your Own PC as a Single Elastic Inference Platform
FreeToken is an edge-native serving system for frontier-scale MoE models on personal hardware. Its centerpiece is a q* policy that decides how many missed experts to ship over PCIe versus execute in place on the CPU — using nothing but two measured bandwidths.
07
·OS & Runtime·★ MEMBER·9 min read
File Systems from Scratch — What Does "Saved" Actually Guarantee?
If the power dies half a second after your editor says "Saved," is the file still there? Starting from a library card catalogue, this builds up blocks, inodes, directories, journaling and fsync from zero — and ends with why databases refuse to trust the file system, and which knobs turn a quiet setting into a production incident.
08
·OS & Runtime·★ MEMBER·9 min read
File Systems from Scratch — What Does "Saved" Actually Guarantee?
If the power dies half a second after your editor says "Saved," is the file still there? Starting from a library card catalogue, this builds up blocks, inodes, directories, journaling and fsync from zero — and ends with why databases refuse to trust the file system, and which knobs turn a quiet setting into a production incident.
09
·Databases·★ MEMBER·PAPER·10 min read
Distributed Databases — CAP, Replication and Consensus
The moment you add a second copy of your database, a brand-new question appears: which copy is right? Replication, quorums, CAP, two-phase commit, Raft and eventual consistency — from zero assumed knowledge down to the parameters you actually set in PostgreSQL and Cassandra.
10
·Databases·★ MEMBER·PAPER·10 min read
Distributed Databases — CAP, Replication and Consensus
The moment you add a second copy of your database, a brand-new question appears: which copy is right? Replication, quorums, CAP, two-phase commit, Raft and eventual consistency — from zero assumed knowledge down to the parameters you actually set in PostgreSQL and Cassandra.
11
·Parallel & Distributed·★ MEMBER·9 min read
Concurrency from Scratch — Locks, Atomics, and Memory Models
Why data races happen and why they refuse to reproduce in your tests, starting from zero. Locks, atomic operations, CAS, and memory models, built up through metaphor, math, and code.
12
·Databases·★ MEMBER·9 min read
Transactions and ACID — Concurrency Hell and the Isolation Levels
Why a balance never evaporates when the power dies mid-transfer, and why the bug that only shows up in production is almost always a concurrency bug. Atomicity, isolation levels, MVCC and deadlocks — from zero assumed knowledge down to the actual PostgreSQL and MySQL parameter names.
13
·Databases·★ MEMBER·9 min read
Transactions and ACID — Concurrency Hell and the Isolation Levels
Why a balance never evaporates when the power dies mid-transfer, and why the bug that only shows up in production is almost always a concurrency bug. Atomicity, isolation levels, MVCC and deadlocks — from zero assumed knowledge down to the actual PostgreSQL and MySQL parameter names.
14
·Security·★ MEMBER·10 min read
TLS from Scratch — Key Exchange and Certificates
Behind the padlock icon, your browser pulls off something strange: it agrees on a secret with a stranger, over a wire everyone can read. This walks through key exchange, certificates, and the TLS 1.3 handshake from zero, ending with why a man in the middle cannot win.
15
·Networking·FREE·11 min read
From TCP to QUIC — Reinventing Reliable Communication
The internet is built on a foundation that makes no promise of delivery. This piece starts from zero: how TCP manufactures reliability out of sequencing, retransmission and congestion control, why HTTP/2 hit a wall, and why QUIC deliberately rebuilt all of it on top of UDP.
16
·Cloud & Ops·FREE·10 min read
Serverless and Cost Design — Cloud That Won't Bankrupt You
"Pay for what you use" also means "pay for what someone else uses of you." Starting from zero, this piece builds up scale-to-zero, the GB-second billing unit, and the accident patterns that make a bill grow exponentially — ending with a kill switch you can actually design into your own project.
17
·Cloud & Ops·FREE·10 min read
Serverless and Cost Design — Cloud That Won't Bankrupt You
"Pay for what you use" also means "pay for what someone else uses of you." Starting from zero, this piece builds up scale-to-zero, the GB-second billing unit, and the accident patterns that make a bill grow exponentially — ending with a kill switch you can actually design into your own project.
18
·Compilers & Runtimes·★ MEMBER·11 min read
Why Python Is Slow — Said Precisely
Saying Python is slow bundles three unrelated complaints: the cost of a single operation, the way data is laid out in memory, and the fact that CPU work does not spread across threads. Objects and the eval loop, the real reason NumPy is fast, what the GIL actually protects, and how far free-threaded builds since PEP 703 get you — from zero assumed knowledge.
19
·Compilers & Runtimes·★ MEMBER·11 min read
Why Python Is Slow — Said Precisely
Saying Python is slow bundles three unrelated complaints: the cost of a single operation, the way data is laid out in memory, and the fact that CPU work does not spread across threads. Objects and the eval loop, the real reason NumPy is fast, what the GIL actually protects, and how far free-threaded builds since PEP 703 get you — from zero assumed knowledge.
20
·OS & Runtime·FREE·13 min read
Processes and Memory from Scratch — What Is the OS Actually Protecting?
One app can crash without taking the machine down with it. Process isolation and virtual memory are what make that ordinary. Starting from a post-office-box analogy, this builds up paging, address translation, TLBs, page faults, swap and the OOM killer from zero — and ends with you able to read free and dmesg yourself.
21
·OS & Runtime·FREE·13 min read
Processes and Memory from Scratch — What Is the OS Actually Protecting?
One app can crash without taking the machine down with it. Process isolation and virtual memory are what make that ordinary. Starting from a post-office-box analogy, this builds up paging, address translation, TLBs, page faults, swap and the OOM killer from zero — and ends with you able to read free and dmesg yourself.
22
·Cloud & Ops·★ MEMBER·10 min read
Observability — Logs, Metrics, and Traces in Practice
When the phone rings at 3 a.m., can you answer without logging into production and looking around? Starting from zero, this piece builds up structured logging, metric cardinality, trace context propagation, and SLOs with error budgets — then lines them all up as a single motion: notice, narrow, confirm.
23
·Cloud & Ops·★ MEMBER·10 min read
Observability — Logs, Metrics, and Traces in Practice
When the phone rings at 3 a.m., can you answer without logging into production and looking around? Starting from zero, this piece builds up structured logging, metric cardinality, trace context propagation, and SLOs with error budgets — then lines them all up as a single motion: notice, narrow, confirm.
24
·Compilers & Runtimes·★ MEMBER·10 min read
JIT and GC — Getting Faster While Running, Cleaning Up While Running
A just-in-time compiler and a garbage collector are both services that have to work without stopping the application. Hot spot detection, tiered compilation, inlining, speculation and deoptimization, generational GC, tri-color marking and write barriers — built up from zero, ending where you can read a GC log and a JIT log yourself.
25
·Compilers & Runtimes·★ MEMBER·10 min read
JIT and GC — Getting Faster While Running, Cleaning Up While Running
A just-in-time compiler and a garbage collector are both services that have to work without stopping the application. Hot spot detection, tiered compilation, inlining, speculation and deoptimization, generational GC, tri-color marking and write barriers — built up from zero, ending where you can read a GC log and a JIT log yourself.
26
·Networking·★ MEMBER·8 min read
HTTP/1.1 → 2 → 3 — The Road to Multiplexing
Thirty years of HTTP is really one argument: how many conversations can share a single connection? Why 1.1's one-at-a-time rule created traffic jams, what HTTP/2 solved with frames and streams, why the jam simply moved one floor down, what HTTP/3 separated by swapping the foundation — and how to measure your own network before picking one.
27
·Networking·★ MEMBER·11 min read
DNS and CDNs — What Happens Between Enter and Pixels
In the second or so between pressing Enter and seeing a page, a name gets resolved down a tree, four layers of cache get consulted, and an edge server somewhere near you answers instead of the origin. Here is how DNS walks that tree, what a TTL does not promise, and how a CDN talks its way around the speed of light — from zero background.
28
·Databases·FREE·10 min read
Database Internals — What Happens Behind a Single Line of SQL
Between hitting Enter on a SELECT and getting rows back, five stages run inside the database: parser, rewriter, planner, executor, storage. Here is why two plans returning identical rows can differ by orders of magnitude, and why stale statistics make a fast query go slow overnight — from zero background to the knobs you actually turn.
29
·Databases·FREE·10 min read
Database Internals — What Happens Behind a Single Line of SQL
Between hitting Enter on a SELECT and getting rows back, five stages run inside the database: parser, rewriter, planner, executor, storage. Here is why two plans returning identical rows can differ by orders of magnitude, and why stale statistics make a fast query go slow overnight — from zero background to the knobs you actually turn.
30
·Security·FREE·13 min read
Cryptography from Scratch — Symmetric Keys, Public Keys, and Hashes
Cryptography isn't about producing unreadable text — it's about engineering an extreme gap in effort between people who hold the key and people who don't. We build up the three tools (symmetric, public-key, hashing) from zero, explain why factoring shows up at all, what a signature actually promises, and how every widely deployed cipher has eventually broken.
31
·OS & Runtime·★ MEMBER·12 min read
Containers from Scratch — What namespaces and cgroups Actually Are
A container is not a lightweight virtual machine — it is an ordinary process with its view restricted. We take it apart into namespaces (what you can see), cgroups (how much you may use), and images (stacked read-only layers), from the first analogy through overlayfs, cpu.max, and how to read exit code 137.
32
·OS & Runtime·★ MEMBER·12 min read
Containers from Scratch — What namespaces and cgroups Actually Are
A container is not a lightweight virtual machine — it is an ordinary process with its view restricted. We take it apart into namespaces (what you can see), cgroups (how much you may use), and images (stacked read-only layers), from the first analogy through overlayfs, cpu.max, and how to read exit code 137.
33
·Compilers & Runtimes·FREE·11 min read
Compilers From Scratch — How Source Becomes Machine Code
One line of source code, followed all the way down through lexing, parsing, semantic analysis, intermediate representation, optimization, and code generation, until it comes out as a single machine instruction. Along the way: why bugs surface at -O2, and why your benchmark loop disappears.
34
·Compilers & Runtimes·FREE·11 min read
Compilers From Scratch — How Source Becomes Machine Code
One line of source code, followed all the way down through lexing, parsing, semantic analysis, intermediate representation, optimization, and code generation, until it comes out as a single machine instruction. Along the way: why bugs surface at -O2, and why your benchmark loop disappears.
35
·Security·★ MEMBER·14 min read
Authentication and Authorization — From Passwords to OAuth and Passkeys
"Who are you?" and "what are you allowed to do?" are two different questions. This piece builds up password storage, sessions and tokens, the four actors in OAuth, and why passkeys resist phishing — assuming nothing to start with.