Blog

October 8, 2026

Giving AI Agents a Fax Machine

I added an agent interface to FaxOnline. An AI agent can now prepare a PDF fax, hand you a checkout link, and check whether it was delivered. Five years ago I wrote about building an online fax...

Read →

September 25, 2026

WordPressSharp 2.0: A .NET 10 Client for the WordPress REST API

I started WordPressSharp in 2014 to make it easier for C# applications to talk to WordPress. The library used XML-RPC, targeted .NET Framework 4.5, and did the job it was built for. I even wrote an...

Read →

September 24, 2026

Jev Query Routing: Ask What It Means, Not Whether It's Right

A couple of years ago, a few engineers and I spent a month or two and thousands of dollars teaching a model one thing: when someone types a search, are they looking for help, checking inventory, or...

Read →

February 20, 2026

How and why I built openclawpm

I kept seeing impressive agent demos. Then I tried to build one I could actually use, with its own context and tools, and it fell apart when I switched machines. The prompt was only part of what I...

Read →

February 4, 2026

Shipping pmprompt Skills as a Claude Code Plugin

I've been packaging the PM workflows in PMPrompt so I can reuse them across projects. Copying a skills folder works, but keeping those copies in sync gets annoying. This week I shipped the pmprompt...

Read →

January 29, 2026

Building PM Practice: Extracting Real Product Decisions from Lenny's Podcast Transcripts

Over Christmas break, I started working on a way for product managers to practice actual PM work. Programmers have LeetCode. Designers can show a portfolio. PMs spend a lot of time talking about...

Read →