Skip to content

Course Pass 1: The Tracer

A thin system through every layer, before any layer is deep. You learn Python, Rust, HTTP and SSE, Go, and containers as you need them. You build a Python matmul and a byte-level bigram fitted by counting, a Rust engine that streams completions from your checkpoint, a Go gateway that checks a key and streams without buffering, images and Helm charts on kind, one trace across gateway and engine in Jaeger, your first incident drill with its runbook, and your first architecture decision record. C remains optional depth later in the course.

Part of: the course. About 5 weeks at 10 to 12 hours a week. Needs: Pass 0 and its gate MS-P0.

Gate: MS-P1, every layer yours and running end to end.

The stages, their chapters, and what “done” means for each are in path.tsv. The engine serves the checkpoint your CLI wrote.

Terminal window
practice/bin/ol learn course-p01-tracer # stages and progress
practice/bin/ol learn course-p01-tracer next # read the next unfinished stage

Pass 1 needs a local kind cluster for stages 8 to 11 (ol doctor --pass 1). Everything before stage 8 runs as local processes.

Generated from path.tsv. Track progress locally with practice/bin/ol learn.

StageReadDone when
1Matmul in Python
Vectors, matrices, row-major layout, and matmul in Python
Your Python matmul matches numpy on the golden cases.
2Byte bigram
Byte bigram: counts, logits, safetensors v0
Your bigram reaches the count-MLE NLL and writes a safetensors file.
3Rust
Rust: ownership, traits, Result, cargo workspaces, std TCP
Your Rust echo server handles two clients.
4HTTP and SSE
HTTP/1.1, JSON, and Server-Sent Events from the wire up
You parse an HTTP request and emit an SSE stream by hand.
5Your first endpoint
Your first endpoint: a std-only Rust HTTP/1.1 + SSE server
Your Rust server streams SSE completions from your checkpoint and exports its span.
6Go
Go: packages, interfaces, goroutines, channels, context, net/http, testing
Your streaming proxy honors a deadline.
7Your gateway
Tracer gateway: static API-key check, SSE pass-through without buffering, traceparent and X-Request-Id propagation
Your Go gateway rejects bad keys and streams without buffering.
8Containers and Kubernetes
Containers and Kubernetes: images, layers, Pods, Deployments, Services, Helm, kind
Your image runs on kind behind a Helm chart and a NodePort.
9Images, kind, and Helm
Tracer deploy: engine and gateway images, kind cluster, two Helm charts, Jaeger all-in-one
helm install brings both up on kind and curl through the gateway works.
10One trace
One trace: gateway to engine in Jaeger (tracer)
One request shows as one trace across gateway and engine in Jaeger.
11First drill
First drill: the engine crashloops
You fixed engine-crashloop and wrote its runbook.
12First ADR
Architecture decision records
ADR-0001 records why languages meet at process and file boundaries.
13Milestone
MS-P1: Every Layer Is Yours
Every layer is yours and runs end to end, starting with your CLI training and sampling from a clean shell.