PHP 8.4 Isn’t Just 'Another Minor': Property Hooks & Asymmetric Visibility for Real Apps

You wouldn’t expect a dot-four release to shift how you think. But PHP 8.4 did something subtle, it made domain models feel more honest. I didn’t notice it at first. The headlines were quiet: property hooks, asymmetric visibility, a few nice bugfixes. No splashy new syntax, no game-changing JIT leap. Just a couple of tools that looked like sugar for edge cases. Then I tried refactoring a class that had always annoyed me, a UserProfile, bloated with validations, protected properties, getters, and conditional setters. The usual dance: guard invariants, expose safely, override when needed but not always. You know the type. ...

May 1, 2025 · Dominic Minischetti

Docs That Run, Answer, and Prove: Turning Documentation into a Living Interface

I opened the integration guide to fix a minor typo and realized the steps didn’t work anymore. Nothing dramatic, just drift. A renamed flag here, a new default there, a missing permission no one remembered to mention. The words were still pretty. The reality had moved on. That’s the quiet failure of static docs, they age in place while the system keeps walking. So we tried something obvious we had somehow avoided: make the docs run. ...

Apr 27, 2025 · Dominic Minischetti

Backend Engineering as Invisible Design

You can spend a whole week rewriting a query, and nobody notices. At least, that’s how it feels at first. You cut the response time in half, eliminated three edge cases, and reduced load on the server by 40%. No one says “thank you.” There’s no visual change, no new button, no new feature. Just a system that works better, quietly, reliably. But here’s the trick: the user does notice. They don’t send you a Slack message about it, but they feel it. When a search bar responds instantly, when a form doesn’t freeze, when an article loads before they finish blinking, that’s backend design. Invisible, but deeply felt. ...

Apr 6, 2025 · Dominic Minischetti

Branch Your Database, Not Your Luck: How Serverless SQL + Preview DBs Change Shipping

You haven’t lived staging hell until your bug report gets closed because “it works on my seed data.” We’ve all been there. Shared staging environments, overwritten rows, test users with weird states, migrations colliding mid-QA. The closer you get to release, the more fragile everything feels. And the more often you hear, “Well it passed locally…” The problem isn’t just the code. It’s that we’re still treating databases like fixed, singular planets in a branching galaxy of dev and test environments. ...

Mar 23, 2025 · Dominic Minischetti

When Data Lies Honestly

You ever stare at a dataset so clean it almost makes you suspicious? I was working on this internal report, years ago, a clean pull, plenty of rows, the kind of structure that makes your inner developer exhale. The task was simple: find out which section of a local news site was most engaging. Click-through rate, time on page, bounce rate, the usual suspects. And the numbers spoke. Loudly. “Pets” crushed “Politics.” “Recipes” danced circles around “Real Estate.” The graph basically threw glitter at “Pets.” So I built the dashboard, shared it, and our PM lit up. “Let’s double down on Pet content,” he said. “People love it!” ...

Feb 23, 2025 · Dominic Minischetti

Document Your APIs Like You're Explaining Them to Your Kid

“Why does it do that?” She was seven, sitting next to me, asking about a box on my screen labeled /getUserSettings. I was halfway through writing documentation for it, and instead of brushing her off, I tried to answer, out loud, like a bedtime story. “Well, this little box lets other parts of the app ask, ‘What does this user like?’ And it answers with things like language, theme, and notification preferences.” ...

Feb 2, 2025 · Dominic Minischetti