Blog

Backend engineering blog

Notes from real backend work: PHP modernization, Go migration decisions, private AI workflows on infrastructure you control, and the architecture trade-offs behind them. Written for engineering leads who have to justify the call.

PHP Modernization

Getting an older PHP codebase back under control: framework upgrades, boundaries, tests and delivery speed.

9 min read

Pin Legacy PHP Behaviour Before You Upgrade It

An upgrade without a pinned picture of current behaviour is a rewrite you did not budget. Characterization tests record what the system does now, including the bugs you still depend on.

9 min read

How Much Does Legacy PHP Modernization Cost?

There is no honest fixed price for modernising a PHP system you have not looked at. There are cost drivers you can name before anyone invents a rewrite budget.

PHP → Go

What is worth extracting into Go, what should stay in PHP, and how to decide.

9 min read

A Resident PHP Runtime Is Not a Go Migration

PHP-FPM spends a process per request. FrankenPHP and RoadRunner keep the process alive. That can remove the ceiling that teams cite when they ask for a Go rewrite, and it leaves the database exactly where it was.

10 min read

Symfony to Go Migration: An Incremental Strategy

How to add Go services to a long-lived Symfony platform one workload at a time, Doctrine boundaries, Messenger transports, tracing and rollback, while product work continues.

10 min read

Laravel to Go Migration Without Rewriting Everything

Laravel is not the problem. This is a selective extraction strategy, which workloads leave, which stay, and how to run Go alongside Laravel without breaking auth, queues or the schema.

12 min read

PHP to Go Migration: A Practical Decision Guide

A workload-first approach to moving parts of a PHP system to Go, including what Go fixes, what it does not, and how to roll out changes without betting the product on a rewrite.

Backend Architecture

APIs, data ownership, queues, caching and the bottlenecks that actually show up in production.

Engineering Teams

How senior backend capacity is bought, scoped and integrated on a B2B basis in Europe.

6 min read

Senior Backend Contractor Rates in Europe

There is no honest single European day rate. There are bands by country, seniority and specialism, and then there is the fully loaded cost of the engagement you actually need.

6 min read

Senior Backend Contractor vs Software Agency

An agency is a delivery organisation. A senior contractor is one engineer inside your team. Those solve different problems, and buying the wrong one is expensive in opposite directions.

6 min read

Need More Backend Capacity but Cannot Add Headcount?

A freeze blocks permanent seats. It does not always block the work. The useful move is to name whether you have a capacity problem, a skill problem or an ownership problem, then buy the matching shape of help.

Private AI

When a local or private model is justified, how the systems are built, and where a public API is still the better call.

8 min read

Your Own Server Does Not Make an LLM Workflow Lawful

On-premise changes where the model runs. It does not decide purpose, retention, deletion, or whether anyone should have pasted that document into a prompt. Those are still a programme, and legal will ask for the engineering half.

Reading this because something needs fixing?

The engagements below are where these articles come from. They run on one B2B agreement, invoiced monthly in EUR.