001 2026.05.11
May 11, 2026
The Spec Is the Work: PRD-First AI Development
The reason AI-assisted builds stall isn't the model: design decisions were never made. Here's why writing the spec first changes everything.
001 2026.05.11
May 11, 2026
The reason AI-assisted builds stall isn't the model: design decisions were never made. Here's why writing the spec first changes everything.
002 2026.05.04
May 4, 2026
Most CLAUDE.md files decay because they're written as config and forgotten. Here's how to treat them as living artifacts that improve over time.
003 2026.04.27
April 27, 2026
AI coding tools don't fail on prompts. They fail on ambiguous artifacts. Here's what Agent Experience means in practice and why it starts with your spec, not your model.
004 2017.01.22
January 22, 2017
Suave is a possible replacement for the ASP.NET stack, but with some help, the two can be used together to build composable F# web applications.
005 2016.12.23
December 23, 2016
While not the primary focus of Microsoft's efforts, F# makes for an excellent language choice for applications targeting .NET Core.
006 2013.12.20
December 20, 2013
SEO is a hard beast to tame. Once you have everything just right, moving to a new platform, a new URL structure, or even a new domain can be stressful.
007 2013.12.08
December 8, 2013
Recently, I built an API wrapper for Mandrill. Let's walk through the steps I used to create it.
008 2013.10.03
October 3, 2013
Don't rely on MD5/SHA1/SHA256/etc. hashes for storing passwords. Join me in learning how to bcrypt in Erlang applications.
stay in touch
I write and connect with operators building developer-first products and payment systems. Follow along on LinkedIn. That's where conversations happen.