Engineering,
taught
&
leadership,
practised.
I'm Steven — CTO at Digitonic, a PHP engineer since 2010 and a keen golfer with a terrible handicap. This is where I write it all down.
Latest from the journal
The #[\Override] Attribute: Catching Broken Laravel Inheritance at Compile Time
PHP 8.3's #[\Override] attribute converts a whole class of silent inheritance bugs into loud compile-time errors. Here's where it pays off in a real Laravel app — and the four places it will blow up in your face.
Style State with Tailwind v4 data-* and aria-* Variants
Open, closed, loading, selected — each state ends up as another ternary in a `:class` string. Tailwind v4 lets you toggle one attribute and style it with a variant instead.
Switch Laravel to Immutable Dates with CarbonImmutable
Carbon extends DateTime, so every modifier rewrites the object you called it on. Here is how to move a Laravel app onto CarbonImmutable end to end.