Blog
-
July 13, 2026
Yes I'll cater to the bots with MCP
So in working on the hotchkiss-io site, I've run into a common workflow pattern.
-
July 9, 2026
You Just Turn a Knob and it Goes Faster, Right?
If it's not obvious, I love solving problems that are useful. They don't always have to be in software and frequently they aren't.
-
July 3, 2026
Let's crank up the formality
So Fable is back out today (July, 2nd) so what better way to put it to the test than to take it for a spin on a VERY challenging problem I've wanted to look into for recon-gen.
-
July 2, 2026
Instrumenting Playwright, the gift that keeps giving!
It started with a dashboard that wouldn't finish loading. All the built-in checks failed me — the deploy was clean, the data was in the tables — and the dashboard just sat on its spinner until the tes…
-
June 28, 2026
Wayback Machine Saves Me Again
I've run my own website on my hardware since roughly 2003. That's a long time for a side project and despite my best efforts to keep things backed up and working, time gets away from me. That's why I…
-
June 27, 2026
Can I please have a real error?
Debugging QuickSight.
-
June 26, 2026
Death by Papercut using QuickSight
I build recon-gen, an open-source financial-validation platform. One of its release targets is Amazon QuickSight. I picked it deliberately, integrated it carefully, debugged it deeply and documented e…
-
June 25, 2026
Markdown guided development, meeting Claude on its turf
An LLM is a text engine. Strip the branding and that's the machine — it eats text and predicts more text. So the format I hand it isn't a detail, it's the whole game, and the densest text I have is pl…
-
June 25, 2026
Since I don't have a map, speed of iteration is the only path
recon-gen is on its 14th major version. Not its 14th release — its 14th time I made a big enough change that semantic versioning required a major version bump due to its size. I did that in two months…
-
June 24, 2026
How to make accuracy from precision: How I make AI write software I can trust
There's a comment in a Python file somewhere that reads # type: ignore[no-untyped-def]. It looked like type protection. It was written in mypy's rule-code syntax. The project uses pyright. Pyright sil…
