Writing
Everything I’ve published here.
Build logs and post-mortems from my own homelab and side projects. Each one starts with what broke, what the numbers said, and what I changed.
A --remove-source-files move across disks hit a tree of hardlinks, deleted one of two names, kept every byte where it was, and wrote a second full copy. Here's the tell, and the repair.
Six models scored 13/13 on my rubric and none of them worked Build log22 local one-shots at a single coding task produced one behavioral pass that didn't reproduce. My static grader couldn't separate the pass from the failures, and that turned out to matter more.
My DNS resolver rate-limited the whole house as one client Build logApp Store downloads took 10+ minutes on Wi-Fi and one minute on cellular. Two AdGuard Home defaults gave every device on the subnet a shared 20 qps budget, and the dropped queries never showed up in the log.
95% of my tokens were the same context, resent Build log835.3M of 879.2M tokens across 3,823 requests were cache reads. I was paying for the search over and over, not for the answer.
Launch day proves nothing EssayThree of my own systems, measured six months after they shipped. The only property that survived is whether the thing fails loudly when it drifts.
1,688 of my 1,883 contacts are dead weight Project noteSodalis scores contacts by decayed interaction history and archives the ones nothing touches. Most of the work went into four guards that stop it eating my address book.
A rename is three renames, and I only scripted one Build logI moved a runtime root from /opt/openclaw to /opt/hog in one clean commit. Seven months later the runbook still points at the old path in ten places.