Writing

Working notes

Short, evolving notes on agentic engineering — the thinking behind the method. Everything is marked: v1 is published, draft means I'm still working on it — so you know what you're clicking into.

  • Train a network, then look inside itstart herev1

    An afternoon exercise with real output: train a 109,386-parameter digit classifier in 82 seconds, then open it up — the learned stroke detectors, the overfitting gap, the mistakes it makes. Figures from my own run, and the repo to reproduce it: mnist-anatomy.

  • The same network, written outv1

    The companion to the piece above: what's actually being computed, in the notation — one neuron built a pixel at a time, then sigma notation, ReLU, softmax and backpropagation. Drawn by hand, with the real activations from my own trained model (60% of the first layer sits at exactly zero).

  • Behavior over kit: what your Claude Code setup says about you

    Installed tools tell you almost nothing — the level lives in behavior. The story of the AI Usage Card: why I built it to calibrate a talk for a room of ~50 engineers, and how a level becomes a path instead of a horoscope.

  • The harness, not the promptdraft

    The next dev skill is engineering the system around the model — context, the agentic layer, hooks, offloading, observability — not wording the request. Teams that optimize only the engine leave most of the leverage on the table.

  • plan → build → reviewdraft

    The loop I work by: scope the work, let the agent build against that scope, then review — with evals so "it works" is measured, not a vibe. Underneath it, one rule: match each piece of work to the lightest layer that can carry it — inline, a command, an agent, or a packaged skill. Keeps the system legible instead of a pile of clever prompts.

  • Model-offloading & the price of lost confidencedraft

    When sending non-interactive work to a smaller or local model wins — and when the harness you need to trust its output costs more than the model you saved. The tradeoff is reliability, not just price.

  • What every team should know about LLMsdraft

    The mental model that stops cargo-culting: tokens (models think in numbers, not words), the context window (why overstuffing it backfires), tools (why too many slow an agent down), and what an agent actually is — versus when you don't need one. The fundamentals that make everything above make sense.

  • Getting yourself out of the loopdraft

    The end state isn't a faster chat — it's work that runs without you. Loop engineering plus scheduling (cron) turns a good harness into unattended runs you can trust: the agent does the job on a timer, and the hooks, evals, and observability are what let you step away.

Prefer the live version?

Reading is the slow way to judge whether I think clearly. The fast way is a session on your own code.

See sessions & pricing