Articles on infrastructure, Laravel, Statamic, and building software that lasts.
PHP Base Images v1
09-09-2026 02:00:00
The images size their own FPM pool from measured memory and expose the queue-depth signals a scale-out decision needs. What they didn't have was version numbers. v1 adds releases, a channel tag that gets weekly security patches without crossing a tooling major, and tags that only move after the image passes.
pm.max_children Is a Guess
31-08-2026 02:00:00
Every PHP-FPM config starts with a number someone guessed. Fine for one app, but on a box running fifty pools that share the same RAM, it's how you starve some sites and pay for idle workers on others. So I built a tool that measures what workers actually cost and sizes the ceilings from that.
How Hard Can US Sales Tax Be
04-08-2026 02:00:00
I was building a billing engine, so I had to handle tax. The EU was hard but knowable. Then I looked at the US and said the sentence that sits right at the peak of the Dunning-Kruger curve. What came out the other side was not tax logic, it was an ETL pipeline against forty government websites.
One Identity Layer Instead of Five
15-07-2026 02:00:00
Every product needs login, organizations, roles, SSO and an audit trail. I had built that more than once, a little differently each time. Identity is the last thing you want five diverging copies of, so it became laravel-id: a contract-driven auth and identity framework for Laravel.
The Code We Kept Rewriting
14-07-2026 02:00:00
SSRF guards, risk scoring, jurisdiction lookups, DNS reads. The same logic was already in production across several projects, written fresh each time and tuned to each one. Maintaining five copies stopped making sense, so I pulled each into a single open source package.