I’ve had exactly one catastrophic deployment failure in my career. Just one. But that single Friday afternoon disaster taught me more about deployment processes than a thousand successful pushes ever could. It was a Magento e-commerce site, back in the days when we used SVN for version control (yes, I’m showing my age here). We had a proper setup with separate staging and production...
The 5W Framework: Notes on Making Bug Reports Less Painful
You know the moment. You’re in a groove writing code, and Slack pings: “The checkout thing glitched out again.” You ask what happened, but the reply is either silence or “I don’t know, it just doesn’t work.” That’s the reality of most bug reports. They often land in one of a few predictable shapes: The Vague Reporter: “The app is being weird.” No specifics, no details. The Screenshot Bomber: A...
Why SaaS Beats “Rolling Your Own” Almost Every Time
I had a meeting recently with someone who was hesitant to sign up for my SaaS. He needed all the features my platform offers, but he was tossing around the idea of building a stripped-down standalone version instead. That’s when I laid out the reality check. Even if he went standalone, he’d still be on the hook for monthly hosting fees. Anything connected to the internet costs something to keep...
How I Actually Use AI to Code Faster
There’s still a lot of talk about vibe coding. I’ve written about it before, but after watching the Cursor and Claude drama on Twitter, I realized my approach might not match the noise. Programming languages are like spoken languages. There are infinite ways to say or build something, but only a handful of those ways are worth using long-term. Anyone can hack together a feature, but there’s a big...
What I’ve Learned Building My SaaS Since September
When I started building this SaaS in September, I didn’t even want to launch a SaaS. I was working with a local client who had a tight budget and was using a mess of disconnected services that refused to talk to each other. None of them offered a usable API. I realized the only way to get them what they needed was to build something myself. That was the spark. Writing Code Was Less Than 40% of...
Deep State vs Client State: Who’s Really in Control
Who’s running your app — your server, your client, or a silent third party you forgot you even wired in? As I’ve been revamping the API layer for ManageMemberships, I’ve started seeing how layered and political “state” really is. You’ve got tokens, hashes, cookies, headers, and sometimes ghosts from past refactors — all arguing over who gets to say what’s true. This post breaks down some of...
It Works for Me. That Doesn’t Matter.
Yesterday I had one of those moments that every developer dreads. A client using ManageMemberships said a customer couldn’t sign up through the form. I checked the logs—nothing weird. I signed up myself on my phone using a real card—worked perfectly. The client followed up, saying it still wasn’t working. The member got an error message that said “contact info updated.” That exact...
Vibe Coding: When AI Helps You Build Fast — and When It Slows You Down
“Vibe coding” is becoming the default for a lot of developers — and for good reason. When the right tools are in place, you can hit the ground running and move fast. Frameworks like Laravel and Filament paired with AI tools like GitHub Copilot let you focus on building features instead of boilerplate. Code almost writes itself. Development accelerates. And surprisingly often, maintainability...
Weekend Destroyed with PHP Streams
I was going to give this a different name but that would violate the terms of service of the inspiration of this post. IYKYK. This weekend I was taken deep into the darkness that is serialization attacks, gadgets, and rce via iconv. This was part of a puzzle of sorts. It boiled down to a challenge to try to exploit the following: <?php $data = file_get_contents($_POST['file']); if (...
Go, React, and MongoDB, OH MY
I’m not sure if I was just incredibly green or if the process has gotten significantly easier but releasing apps to the App and Play store is not nearly as big an ordeal as it once was. Thankfully, xcode even manages keys for you so iOS is arguably easier to work than Android. However, deploying Android apps is still a straight-forward process. In it’s infinite wisdom, the YouTube...