A file-lock error that wasn't a file lock at all. Tracing Claude Desktop's Windows launch failure down to a leaked AppX container handle — and why the fix was to stop using MSIX entirely.
A file-lock error that wasn't a file lock at all. Tracing Claude Desktop's Windows launch failure down to a leaked AppX container handle — and why the fix was to stop using MSIX entirely.
Most software is built to be shipped, not to be lived with. What changes when you design for the next ten years instead of the next sprint.
Everyone asked when I was going to hire. Four years in, here's the honest ledger of staying a company of one.
I gave up the first two hours of my day to my inbox for about a decade. Here's what I put there instead.
I keep choosing tools that were already old ten years ago, and I keep not regretting it.
I stopped chasing new titles a while ago. The old ones kept getting better, which was not what I expected.
What changed when I started calling customers before raising prices instead of after.
Software I've built, maintained, or had to apologise for. Mostly about durability — why the boring choice usually outlives the clever one.
Running something small on purpose. Pricing, customers, saying no, and the arithmetic of not growing.
Attention, time, books, walking. The unglamorous parts that turn out to decide everything else.
Rewriting the guts of an eight-year-old app I still use daily, reading Ursula Franklin for the third time, and trying to keep my afternoons free of meetings entirely.
When something new goes up here, I send it out with a short note about what I was actually thinking while writing it. That's the whole thing — no digest, no round-up, no course at the end of it. Leave whenever you like; the unsubscribe link is at the top of every email, not buried at the bottom.
I never sell or share the list — it lives on my own server.