Browse category Blog
Ubuntu Firewall Setup in Less Than 5 Minutes (Plus One Step That Will Lock You Out)
Setting up a Virtual Private Server (VPS) without a firewall is asking for trouble. Ideally, you’d have a dedicated security person to handle all of this, but that’s rarely the case. One thing I always do on a fresh Linux server is configure a firewall. It used to be a real headache, but […]
Advanced Unique Index Patterns for Soft Deletes (MySQL and PostgreSQL)
Tell me if this has ever happened to you: a user contacts support because they’re randomly seeing different order histories every time they log in. Sometimes they see their recent purchases, sometimes they see orders from years ago, and sometimes they see nothing at all. After several hours of debugging, you discover that […]
Here’s Why FrankenPHP Worker Mode Saves Your Sanity
A lot of developers spend little to no time thinking about how our code gets from being code to something that can be interacted with by the consumers of our code. There are several large components that we can affect to improve the performance of this interaction. One of them that doesn’t get much […]
Database Views: The PHP Feature Nobody Uses (But SHOULD)
One of the more challenging pieces of maintaining applications that uses an SQL database is the fact that queries only every get more complex as the application grows. It never ever gets simpler so you start having to copy and past the same complex join into multiple places and good luck if you have […]
Why Your PHP Dates Keep Breaking (And How to Fix It)
If you’ve ever spent hours debugging a date-related bug only to discover that some code somewhere modified a DateTime object you thought was safe, you know the pain. DateTime in PHP is mutable, which means any code that touches your date object can silently change it, leading to bugs that are incredibly challenging to […]
Relational Databases Made Simple
If you’re building web apps with PHP, you are almost certainly using a relational database, even if you call it “MySQL” or “Postgres” and rarely think about the theory behind it. Relational databases can be one of the unseen workhorses of our technology stack, but understanding them to a greater degree will improve your […]
The Secret Header That Makes Your PHP App 10x More Secure
As developers in the year 2025, keeping our systems and applications secure is of the utmost importance. One of the most common ways that attackers can make our applications less secure is by using a class of vulnerability called Cross-Site Scripting (XSS). XSS allows an attacker to inject malicious client-side scripts into […]
Stop Manual Refactoring: Automate Your PHP Upgrades with Rector
One of the more challenging parts of coding is making sure we’re constantly refactoring our code to make it easier to maintain. It’s also a pain to try and keep up with all of the deprecated features in PHP, and major upgrades can be a major headache. But what if there was a tool […]
Real-Time Call Transcription with FreeSWITCH and AssemblyAI: A Debugging Journey
Recently, I dove headfirst into adding real-time audio transcription to a FreeSWITCH-based system. The idea was simple: capture the audio from a live phone call and feed it to AssemblyAI’s real-time transcription API. The reality? Not quite so simple. Getting Started I used Claude to help kickstart the effort. Within an hour, I had a […]
PHPStan: Your Development Best Friend Who Actually Knows PHP Better Than You Do
It’s 2 AM, you’re three coffees deep, and you just pushed what you’re convinced is the cleanest code you’ve ever written. Your tests are green, your commit message is poetry, and you’re feeling like the PHP wizard you always knew you could be. Then PHPStan speaks up. “Hey,” it says gently, “I noticed you’re returning […]


