What Clockwork showed us about a 30-second list page

A list page in our admin was hitting PHP’s max_execution_time and crashing. The fix wasn’t one big rewrite — it was ten small ones, found by spending an afternoon making Clockwork actually show us where the time went.

November 21, 2025 · 5 min · Lars Evald Andersen

Reverting a 4-month refactor in 29 minutes (and shipping it again a week later)

A 138-file permissions refactor we’d worked on since June merged at 12:28. By 12:57 it was reverted. The bug was small. The revert was the right call. The version we re-shipped a week later was the same diff plus one fix — and a different way of proving it was safe before the merge button.

November 10, 2025 · 7 min · Lars Evald Andersen

Rector without the level sets: upgrading PHP 7.3 → 8.4 the boring way

Rector ships with version ‘sets’ that bundle hundreds of rules to take your code from PHP X to PHP Y. We didn’t use any of them. Here’s the 20-rule cherry-pick we used to upgrade a multi-repo PHP 7.3 codebase to 8.4 — and why hand-picking turned out to be the smaller risk.

September 15, 2025 · 6 min · Lars Evald Andersen