• Content note: This post includes a brief mention of a suicide attempt. There’s a version of me that most people know. The builder. Twenty years of shipping software, doing consulting, working on open source projects. Calm, capable, in control. That version is real. But it’s not the whole story. And the distance between what I’ve […]

  • Every week there’s a new demo of someone building a full app in twenty minutes with AI. A SaaS scaffold. A working prototype. A thing that would have taken a team a sprint, conjured from a prompt and a conversation. It’s impressive. It’s real. And it’s almost entirely beside the point. I’ve been building software […]

  • I had a blog post ready to publish this week. A post about the thing I’ve been building. The product behind all the thinking and writing I’ve been doing lately. It was done. Reviewed. Scheduled. I pulled it. When I published my post about the silence in the WordPress ecosystem last week, I braced for pushback. I’d […]

  • Over the past year and a half, the WordPress ecosystem has been consumed by the dispute between Automattic and WP Engine. The legal battles, the public confrontations, the hostile takeover of Advanced Custom Fields. I’ve written about these events as they unfolded. A lot of people have. A lot of opinions have been shared, from […]

  • I’ve been wanting to write this post for a long time. Months. Probably even longer. The reason I haven’t is, ironically, the exact thing I want to write about. There’s a particular kind of silence that exists in the WordPress ecosystem. It’s not the silence of having nothing to say. It’s the silence of having […]

  • Against convenience

    There’s a question I’ve been turning over in my head for a while now. It’s not a technical question, even though it affects almost every technical decision I make. At what point does convenience stop being a benefit and start being a liability? I’ve been building software for well over twenty years now. Most of […]

  • I use multiple AI coding tools. Claude Code, Cursor, OpenCode. They each give access to different models, and I switch between them depending on what I need. I want them all to follow the same project instructions. That shouldn’t be complicated. It is. AGENTS.md was supposed to fix this. One Markdown file, no special syntax, […]

  • Built on borrowed code

    There’s a narrative that keeps coming up in discussions about AI: that it’s all built on theft. That the models powering Claude, Cursor and others were trained on open source code without permission. That developers never consented to having their work scraped and fed into these systems. I get it. And yes, there’s something uncomfortable […]

  • There’s an interesting contradiction in how we talk about AI. There’s panic on one side. AI is coming for our jobs. Developers will be obsolete. The robots are taking over. On the other side: people casually trying to get AI to generate a thousand startup ideas, register the domains, build landing pages, and deploy them. […]

  • The era of writing code

    The role of software developers is changing. Not gradually, not theoretically. But right now. And it’s happening faster than most of us expected. For years, our value was in writing code. Understanding syntax, knowing the quirks of languages and frameworks, translating requirements into working software. That’s shifting. The value is moving from writing syntax to […]