blog
engineering write-ups and personal essays.
2026
- The package name was not the network boundaryA Cortex API build failure that looked like flaky package downloads, and turned out to be a CUDA dependency graph, a 2 GiB egress ceiling, an HTTP proxy boundary, and a model distributed across several hosts.17 September 2026
- The pipeline is code. The execution is a graph.Inside canopy.pipeline.ts and @canopy/ci: a synchronous authoring API, the Canopy Pipeline Graph, content identity, planning, and the boundary where execution begins.15 September 2026
- Why a WORKDIR took five minutesA technical account of the BuildKit performance incident in Forest: native snapshotting, a misleading benchmark, configuration precedence, and a separate one-hour PVC retention bug.10 September 2026
- Forest, and the problem with pretending one machine is not enoughA technical account of Forest, the runtime behind Canopy Host: its workload model, Talos and Kubernetes layer, capacity mistakes, migration failures, and what production changed.8 September 2026
- The five-minute regression: what breaking my own SSL fix taught meCleaning up a stale domain on this exact site broke its own HTTPS as a side effect - a real bug found and fixed within minutes of causing it.23 July 2026
2025