Blog

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 →

December 29, 2025

Compound Engineering for Laravel

I've been experimenting with having AI write most of the Laravel code on Site Spell Checker. The part I wanted to improve was what happened after a feature worked. I could fix a mistake, ship the...

Read →

September 26, 2025

Building Snooji

I wanted to build a browser game with the same basic idea as Snood. Launch something at a board, match a group, try to clear it before the board gets you. I used emojis for the pieces and called it...

Read →

September 4, 2025

JSONL Viewer Tool

I kept copying individual lines out of JSONL files, pasting them into a JSON formatter, then going back to find the next record. The data was there. Reading it was the annoying part. So I built a...

Read →

April 15, 2025

Building a Serverless Search Engine with Laravel and Cloudflare Vectorize

I've been writing up different ways to build search with Laravel. Elasticsearch gives me a separate search service. PostgreSQL with pgvector keeps vector retrieval in the database. Cloudflare...

Read →