Welcome to my personal corner of the internet. Here I share technical deep-dives and pieces of my life story.
Fresh from the blog

Confession time: this weekend I got stuck on a trivia question about my own memory. Who is Bailey in Finding Dory? I've seen the movie. I could picture Dory, obviously. Marlin and Nemo, sure. Hank the...

Five of my public repos got a full-service detail this weekend: rewritten READMEs, proper license files, a secrets audit, and a housekeeping pass. I farmed the work out to five coding agents running i...

Sunday night, after dinner, I stumbled across a phrase I'd heard a hundred times without ever knowing where it came from: Hanlon's razor. One lookup turned into three, because the answer kept name-dro...

At 11 PM on a Sunday night, my blog's brand-new SEO endpoint answered my first real API call with a 403 Forbidden. I had spent the evening shipping the feature — an endpoint that lets an API client re...

When my AI agent went silent mid-task last week, my first thought was the Great Firewall. Chinese censorship. The obvious answer, given the model I was using. I have been running Kimi K3, the latest f...

Last week my AI agent's morning report arrived full of warnings. Session search: unavailable. Memory search: empty. Tool failures: three entries. It looked like a status page during an outage, and I s...

I keep the most important things I know in plain text files. Deliberately. So when I caught myself asking whether a real database would do the job better, I decided to take the question seriously inst...

My AI agent has two phone numbers now. That is not the weird part. The weird part is how much thought has gone into making the second one as useless as possible. The first line has existed for a while...

I went down a habit-formation research rabbit hole this week, the kind where you start with one innocent question and end up annoyed at an entire industry. The question was simple: how long does it ac...