Archive
MJ Convento
-
If AI replaces everyone, who is left to buy the product?
We costed out replacing two support seats with a model, then spent months checking whether the demand argument against it holds. The Ford story is wrong, the labour share numbers are real, and the answer is narrower than I expected.
-
Which model for which job: what we actually run, and what it costs
A routing guide from a backend team that pays its own API bill: which model we use for refactors, review, classification, long PDFs, on-prem work, and agents, with the arithmetic.
-
MySQL 8.4 LTS, and the authentication plugin that ended the upgrade
The 8.0 to 8.4 in-place upgrade cost us 6 minutes 40 seconds of downtime. The disabled mysql_native_password plugin cost six hours. Notes on the LTS model, the removed options, and the pre-flight query I should have run.
-
Laravel 13 and the first-party AI SDK
Three months on Laravel 13 in our internal ops app: what the AI SDK replaced in our ticket triage code, the numbers we measured, the 0.x release that broke our structured output, and the parts we did not turn on.
-
The pipe operator, five months in
PHP 8.5 shipped the pipe operator in November. After five months of using it on real import code, here is the chain it improved, the two steps it made worse, and the rule I settled on.
-
Symfony 8 on PHP 8.4: the config rewrite nobody warned us about
We went from Symfony 7.4 to 8.0 on PHP 8.4. Most of the work was converting fluent PHP and XML config to array shapes, not chasing removed APIs. Notes on what broke and whether 7.4 is the better call.
-
Vite replaced Encore, and AssetMapper replaced both in one app
Three Symfony front ends, three answers. Notes on what AssetMapper actually does, where it stops, why the Vue dashboard kept a bundler and got Vite, and why one app still runs Encore on purpose.
-
FrankenPHP worker mode, with numbers from a real application
Six weeks replacing PHP-FPM with FrankenPHP worker mode on a Symfony 6.4 back office. The config keys that mattered, the memory leak we caused ourselves, and the p95 and throughput numbers on both sides.