Things I've
learned.
Technical essays on backend engineering, Laravel, distributed systems, and the art of keeping systems quiet at 2am.
How to Generate the Same Data on Every Run of Your Laravel Seeders
Faker regenerates fresh random data on every seed run — here's a one-line fix to lock it to a consistent dataset so your development workflow stays predictable.
How to Implement CSV Exports (Millions of Rows) in Laravel with a Distributed Approach Using Queues and Jobs
Stream downloads break under millions of rows and a single job runs out of memory. Here's how a self-re-dispatching job solves both problems cleanly.
Testing Your Multi-database Multi-tenant Laravel Application
The stancl/tenancy testing docs didn't work. Here's the base test class pattern that actually does — and how it evolved to handle parallel runs, manual DB transactions, and fixture caching.
Caching, Indexes, and Laravel: Surviving Scale with a WordPress Core over 8 Years
In 2017 I launched a tiny WordPress podcast service for my local church. Eight years and tens of thousands of users later, it's still alive — here's the honest journey of scaling it without a rewrite.
Fixing Laravel IDE Helper for Multi-Tenant Setups with Stancl Tenancy
Laravel IDE Helper generates model properties from the landlord database — which doesn't have your tenant tables. One Artisan command fixes that.
Get new essays
monthly, not weekly.