Writing

On thinking clearly, communicating well, and working with AI without outsourcing judgement.

Technology

A store chat that knows when to call me

I added an AI assistant to my biker merch store. It answers from the store's own data, refuses to make things up, and hands anything that needs a decision to my phone. Here is how it is built and what I changed after the first day.…

Technology

Building my own CMS, part 3: locking down the admin

The public blogs are plain files, so the admin is the only thing worth attacking. The layers in front of it, the checks behind it, and the Cloudflare setting that locked out everyone except me.…

Technology

Building my own CMS, part 2: publishing through git

Pressing Publish turns into one git commit, pushed straight to GitHub, which my host deploys. Why git, why I stopped using GitHub's API, and the one folder the CMS may touch.

Business & Growth

A two-minute test for your firm's positioning

Put a competitor's name on your positioning line and read it aloud. If it still holds, the line is not yet saying anything only your firm can say.

AI & Work

I built a system to post video every week.

I record. Claude edits, checks its own work, and stops at a draft. How it works, what I refused to let it do, and what the first video taught me.

AI & Work

You’re Not Bad at Prompting. You’re Prompting with Unexamined Assumptions.

The assumptions you bring to a prompt matter more than the prompt itself. This paper argues that the gap between what AI tools can do and what most people get from them is not a capability gap or a formatting gap. It is a diagnostic gap, built from unexamined assumptions about audience, purpose, and what “good” actually means. It draws on research in human-computer interaction, cognitive psychology, and decision science to make the case that the prompt engineering industry has, almost entirely, been selling solutions to the wrong problem. Seven sections. One uncomfortable question: what are y…