Blog
June 5, 2026
Stop Writing Recursive Directory Functions Use RecursiveDirectoryIterator Instead
A few years back, I spent an entire afternoon debugging a recursive function that was supposed to scan a project directory and list every PHP file. It worked great on small folders. Then I pointed it...
Read
May 29, 2026
Stop Letting Claude Search Your Codebase
I kept burning tokens watching Claude search through my repository for information it already could have had. The pattern was always the same. I'd ask Claude to add a feature, and before it wrote a...
Read
May 25, 2026
Weekly Digest - May 25, 2026
It was a big week last week because PHP/JS Tek 2026 happened, which meant conference talks, post-conference sausage, and apparently a five-act musical. Here's everything I published this week. If...
Read
May 22, 2026
Wurstcon: The Musical
Last night after Wurstcon someone started singing a "hot dog related song" and somehow we got on the topic of how we need "Wurstcon: The Musical" I gave Claude the following prompt: Plan a five...
Read
May 22, 2026
Claude Code Commands That Get Smarter Every Time You Use Them
I fell into an embarrassing pattern with Claude Code. I'd run a command, Claude would do something slightly off, I'd correct it, Claude would fix it, and we'd move on. Then, less than an hour later,...
Read
May 21, 2026
Advanced SQL: The Features You've Been Ignoring (But Shouldn't) - PHP/JS Tek 2026
I presented my talk on Advanced SQL at PHP/JS Tek 2026. Advanced SQL: The Features You’ve Been Ignoring (But Shouldn’t) While your app sleeps, your database dreams... of being useful. This talk...
Read
May 20, 2026
PHP Tek/JS 2026 - Day 3
These are my raw notes from PHP Tek/JS 2026 Day 3. AI works best as a fast collaborative implementation engine Now Describe intent Guide the agent Classic Workflow Ticket -> Analysis -> eng...
Read
May 20, 2026
Taming Time in PHP: Best Practices and Gotchas - PHP/JS Tek 2026
I presented my talk on Time in PHP at PHP/JS Tek 2026 Join.d T-Shirt Giveaway Podcast Support Community Corner UnleashedPodcasts LinkedIn LinkedIn Mastodon:...
Read
May 20, 2026
PHP Tek/JS 2026 - Day 2
These are my raw notes from PHP Tek/JS 2026 Day 2. "Sometimes it takes courage to eat breakfast" Framework to manage change? "You already know what to do. the gap isn't knowledge it's courage"...
Read
May 19, 2026
PHP Tek/JS 2026 - PHP Tek/JS 2026
These are my raw notes from PHP Tek/JS 2026 Day 1 The Trust Protocol - "Trust is not a value. Trust is infrastructure" Need to be able to have trust but it's very easy to have trust failures The...
Read