Why I am extracting Headcode from one monorepo into independent repositories, what the workspace looks like, and why the migration is deliberately unfinished.
How Headcode uses age to commit encrypted secrets, stream them over SSH during deployment, and load them into a Go service through systemd and YAML configuration.
A pattern for ingesting a continuous external stream in Go: a dumb, fast Kafka consumer that lands raw messages in Postgres, with per-partition fan-out, idempotent batched writes, and a landing table that never expires.
Headcode began as a way to learn UK rail data and how to use an LLM properly on something real. The product is a maybe; the research-to-PRD-to-tasks workflow I built alongside it, with review at every layer, is now how I work.
Headcode is a unified, developer-friendly JSON API that takes the fragmented, legacy feeds of the UK rail network and turns them into clean, enriched real-time data.