A learning roadmap · in progress

Building engineering judgment

Follow along with what I'm doing and the resources I'm using to become better at decision making & problem solving as a Software Engineer. Building everything out in the open for anyone to see.

0 / 98 stages
Build · 0/5 courses
0 / 38 chapters
Reading · 0/4 books
0 / 22 items
Foundations
0 / 8
Decision logs
0 in rotation
Retention
Build — CodeCrafters Reading — DDIA & more Foundations — NeetCode Judgment — decision log Retention — spaced review

Build — CodeCrafters

One milestone per course, taken to (pragmatic) completion, in order. Sub-checkpoints are the CodeCrafters stage-groups; each milestone ends in a capstone decision log.

M1

Redis

Build a Redis server from raw sockets to replication — defend choosing an in-memory store over disk, and name exactly when that choice breaks.

0% +
“RESP vs JSON for a wire protocol: what Redis traded away, and the workload where I’d make the opposite call.” not started
1Prediction — before you read the answer
2Confrontation — after the build
“RDB vs AOF: the durability/latency/recovery trade I’d default to, and the workload that flips it.” not started
1Prediction — before you read the answer
2Confrontation — after the build
“Single-leader vs multi-leader: where I draw the line, and what each costs.” not started
1Prediction — before you read the answer
2Confrontation — after the build
M2

SQLite

Read a real SQLite database by hand — page headers, the B-tree, an indexed query — and predict which storage engine wins a query pattern before benchmarking.

0% +
“B-tree vs LSM for this workload: which I’d reach for, and the read/write ratio that flips the call.” not started
1Prediction — before you read the answer
2Confrontation — after the build
M3

HTTP server

Build an HTTP/1.1 server — requests, responses, headers, compression, keep-alive — and reason about encoding and evolution on the wire.

0% +
“Versioning an API without breaking last year’s clients — the migration I’d never ship.” not started
1Prediction — before you read the answer
2Confrontation — after the build
M4

DNS server

Build a DNS server — construct and parse the binary packet format, handle name compression, forward queries — and appreciate compact wire encoding.

0% +
“Compact binary protocols: where DNS’s choices (name compression, UDP) pay off and where they bite.” not started
1Prediction — before you read the answer
2Confrontation — after the build
M5

Kafka

Build a Kafka broker — the partitioned log, offsets, fetch and produce — and name the consistency model a system needs versus the one it secretly relies on.

0% +
“Which consistency model a feature needs — and the one it’s secretly relying on.” not started
1Prediction — before you read the answer
2Confrontation — after the build
“Capstone: a published system-design writeup distilled from these decision logs.” not started
1Prediction — before you read the answer
2Confrontation — after the build

Reading — interleaved

Read ~1–2 chapters/week, interleaved with the builds: one "anchor" chapter (DDIA / Database Internals) plus one "light" read (A Philosophy of Software Design, then OSTEP). DDIA + APoSD finish within the build; the rest carries past it.

Designing Data-Intensive Applications

Martin Kleppmann

0/12 +

Database Internals

Alex Petrov

0/14 +

Operating Systems: Three Easy Pieces free

Remzi & Andrea Arpaci-Dusseau · Concurrency + Persistence parts only

0/7 +

A Philosophy of Software Design

John Ousterhout

0/5 +

Foundations — NeetCode

Course-first, then problems: finish the courses, then work NeetCode 150 pattern by pattern. The patterns line up with the builds (shown as ↔ hints).

Courses

NeetCode 150 — patterns

Retention — spaced review

The other tracks ask "have I done it?" This one asks "do I still know it?" A card enters rotation once its milestone is checked off, then resurfaces on an SM-2 schedule. The count is public; the schedule is private.

0 cards in rotation · 28 authored
Build 0 Reading 0 Foundations 0 Judgment 0 Behavioral 0

Progress is shared — what you see is the live, saved state. The owner can unlock edit mode to check items off.