Zero-Downtime Database Migrations for Laravel Applications
How to change a production schema without locking tables or breaking the currently deployed code, using an expand-and-contract approach.
How to change a production schema without locking tables or breaking the currently deployed code, using an expand-and-contract approach.
An introduction to writing Laravel feature and unit tests with Pest, including datasets, expectations and what's actually worth testing.
A practical approach to API versioning in Laravel using resource classes, so you can evolve a response shape without breaking existing clients.
How to use relationships, local scopes and query builder macros to keep business logic out of controllers and in models where it belongs.
A practical look at designing Laravel jobs that fail gracefully, retry sensibly, and leave a clear trail when they don't succeed.
Compare Server-Sent Events and WebSockets to choose the right real-time architecture for your web application based on traffic, complexity, and server load.
Losing a key account hurts, but it also reveals valuable operational flaws. Here is how to run a constructive churn post-mortem to protect future revenue.
Profitable on paper, broke in the bank. The seven cash-flow mistakes behind most small-business crunches, and a simple 13-week forecast to avoid them.
I write HorizonDesk: practical, no-hype articles on technology, money, business and the vehicles we drive. Everything here is something I’ve researched, tested or wanted explained clearly myself.