Blog
August 29, 2026
Stop Repeating Yourself in Code Review: Build a Custom Mago Lint Rule
Check out my video on "Stop Repeating Yourself in Code Review: Build a Custom Mago Lint Rule" at the php[architect] YouTube Channel. https://youtu.be/Sns4iMSa3qA
Read
August 28, 2026
Your Memory Is Not a System
A few years back I pushed a release to production and broke the whole site for about twenty minutes. The code was fine, and the tests passed. The problem was that our deploy had a specific order to...
Read
August 24, 2026
Weekly Digest - August 24, 2026
Happy Monday All! On August 17th GitHub went down for almost eight hours and took a ton of services out with it. The root cause was that the load balancers saturated, and Copilot's retry loops...
Read
August 21, 2026
Your Side Project Doesn't Need to Be Perfect to Ship
When I started building Unleashed Podcasts, I hardcoded a bunch of stuff that had no business being hardcoded. Values like XP for publishing an episode, streak rules, and the list of episode statuses...
ReadAugust 20, 2026
PHP 8.5 + 8.6 Release Manager Daniel Scherzer
Check out my video on "PHP 8.5 + 8.6 Release Manager Daniel Scherzer" at the php[architect] YouTube Channel. https://youtu.be/fBkBBAy_ous Find more episodes on our Introducing the Community...
Read
August 19, 2026
GitHub Goes Down for 8 Hours, and Your Whole Team Stoped. Here's My Fix.
Like most of you, on August 17th I sat down to review the code that my team had pushed to GitHub. I opened GitHub in a browser to see the Unicorn letting me know there was a problem. Occasionally,...
Read
August 17, 2026
Weekly Digest - August 17, 2026
Three posts this week: a way to make an AI agent fix its own duplicated code, a deep look at how PHP's loose comparisons can hand attackers a login, and the email templates I use to book podcast...
ReadAugust 15, 2026
I Made My AI Agent Fix Its Own Copy-Paste (jscpd + Mago)
Check out my video on "I Made My AI Agent Fix Its Own Copy-Paste (jscpd + Mago)" at the php[architect] YouTube Channel. https://youtu.be/ubhVleOpLQ0
Read
August 14, 2026
The Complete Guide to PHP Type Juggling and Comparison Gotchas
Years ago I inherited a login system that checked passwords with something close to this: Most of the time it worked, but occasionally a user reported they could log in with the wrong password,...
Read
August 10, 2026
Weekly Digest - August 10, 2026
Three posts this week. One PHP function I wasted years reinventing, a podcast about spotting duplicated code, and a system for finding podcast guests when your show is small. I spent years writing...
Read