Writing
Technical writing & engineering notes.
Articles, architecture notes, project logs, and engineering reflections. Filter by type, search by keyword, or browse by tag.
Assembled Primitives vs. a Platform
I built a voice agent out of cloud primitives, and it worked. It has since been replaced by a purpose-built voice platform, and I think that was the right call.
Six Posts a Day, and the Scheduler That Learned to Say When
A social pipeline that published one Reel a day and nothing else, because per-format quotas were ceilings and nothing was asking for the other formats.
Seconds of Work, Hours of Residency
My morning briefing started failing. Ollama was up and returned HTTP 500, because a 21-second image render was still holding 6.6 GB of VRAM hours later.
What Deserves Attention Today
My homelab produces one verdict each morning: something needs you, or nothing does. Getting the second half honest was much harder than the first.
The Alert That Named a Thing and Called It Evidence
Five high-severity alerts from my own monitoring. All five were the same defect: a record that names something being read as an observation of a property it never measured.
A Planner That Will Not Onboard Anything
The tool that decides how to onboard a new service into my homelab has no ability to onboard a service. That separation is the design, not a limitation.
Documentation That Publishes Itself, After I Say Yes
My homelab writes its own wiki pages. Every one of them still passes through a pull request I merge by hand, and publishing happens only from main.
A Write Loop That Never Merges Anything
My homelab brain noticed problems and did nothing about them. Closing the loop meant four human gates and an executor whose defining feature is that it stops at a draft PR.
The Journal That Writes Itself
Every morning my homelab turns its own event log into a written summary and posts it to my notes app. The interesting part is what it does when it cannot tell whether it already did.
A Sandbox for Demos You Throw Away
One box runs every client demo I have live. The pattern is unremarkable; the interesting part was my monitoring reporting four healthy demos as missing.
Teaching a System to Say “I Don’t Know”
The most useful thing my homelab brain does is refuse to answer. Grounded-or-blocked: every claim cites the fact that produced it, or it never reaches me.
A Second Brain That Refuses to Guess
Answering an operational question was costing a local model a 30-50K token dump. I built a compiled memory layer that does it in 2-5K, and blocks itself when it cannot cite a source.