skip to content
writing
- 2026-08-24 My coding agents keep a record of what they decided and why, not just what they built Claude Code and Cursor run on different machines for different kinds of work, and both lose their session's reasoning the moment it ends. Three hooks write it to a shared Obsidian vault instead, decisions, plans, spikes, and a devlog, and one of them refuses to let a session close if enough changed and nothing got recorded.
- 2026-08-22 I run browser automation inside a disposable VM Browser automation on the homelab holds real logins, so it runs inside a disposable VM. That VM stops one kind of compromise and does nothing for another, and the design only works because those two guarantees are enforced at two different layers, not one.
- 2026-08-21 hearth is what I built to schedule every job on my homelab's GPU Every scheduled job in my homelab runs through a platform I built called hearth: a priority queue, resource classes mapped to real OS limits, and a gateway that admits one job at a time to whichever machine is running a model. Three of the decisions behind it came from measuring the thing, not guessing.
- 2026-08-19 Scheduling every job on a GPU that can only hold one model I run this homelab on two small boxes. One never turns off and just serves DNS and background services; the other has a GPU with a memory pool that can hold exactly one loaded model at a time, nothing more. This post covers the queue and gateway that constraint forced me to build, and the network shape wrapped around both boxes.
- 2026-08-01 Running a 26B MoE on an 8 GB Jetson by streaming experts from SSD My Jetson Orin Nano has 8 GB of memory and Gemma 4 26B-A4B needs 13.3 GiB at Q4. I patched llama.cpp to stream the routed experts off the SSD instead, with logits bit-for-bit identical to the stock path, and recorded the model decoding on device.
- 2026-07-10 J-space in practice: using Anthropic's Jacobian lens to decide what an LLM can forget Anthropic's global workspace paper introduced J-space and the Jacobian lens. I turned the workspace readout into a KV cache eviction signal that beats SnapKV and H2O across three Qwen models, and shipped it in EVOKE.