Taking on rescue projects

Legacy PHP support
without a full rewrite

Inherited an aging PHP codebase that nobody wants to touch? You probably don't need a rewrite — you need someone who's done the upgrade dance enough times to know which battles to pick. I've migrated apps from PHP 4 to 8, from CakePHP and CodeIgniter to Laravel, and through every Laravel major version since 4.0.

Who I work with

Teams with codebases that still earn their keep

Old code isn't bad code — it's earning revenue. The job is to make it safer to work with, not throw it away.

🏗️

Inherited codebases

Original developer is long gone. Nobody is sure what's safe to touch. Let's start with a proper audit.

📅

Apps stuck on old versions

PHP 7.x, Laravel 5/6/7, jQuery-based frontends. Still working — but security patches stopped, hosting is getting expensive, hiring is hard.

🔄

Mid-migration projects

Started a rewrite, ran out of steam, now you're running two systems. Need someone to either finish it or back it out.

🚨

Compliance pressure

Auditors flagged the old PHP version. ISO 27001 is coming. You need a credible plan, not just panic.

What I do

Move you forward without breaking things

Gradual, low-drama modernisation. Your customers shouldn't notice anything except that things stop breaking.

🔍

Codebase audit

Honest assessment of what you've got — risks, technical debt hot spots, low-hanging modernisation wins.

⬆️

PHP version upgrades

PHP 5.x → 7.x → 8.x. Done properly, with deprecation fixes and tests added along the way.

🚂

Laravel upgrades

Through every major version. Includes refactoring deprecated patterns to current idioms.

🔐

Security patches

Dependency updates, vulnerability fixes, removing abandoned packages, plugging the obvious holes.

🧪

Adding tests

Even a thin layer of integration tests makes everything else safer. Start where it matters most.

🪦

Killing dead code

Old features nobody uses, copies of copies of copies, unused models. Quietly removed with confidence.

📦

Framework migration

CodeIgniter, CakePHP, Symfony, custom MVC → Laravel. Gradual, strangler-fig style.

🎨

Frontend modernisation

jQuery → Alpine.js, Bootstrap → Tailwind, legacy templates → Livewire components. Page by page.

📖

Documentation

Architecture notes, decision records, runbooks — so the next person doesn't have to start from zero.

How a rescue runs

Audit first,
heroics never

Big-bang rewrites fail. Boring incremental work succeeds. Here's the rhythm.

01

Audit the codebase

A few days deep in your code. You get a written report with risks, options, rough effort and a recommended sequence.

02

Stabilise & secure

Patch the urgent stuff first — security holes, broken builds, missing backups, unreliable deploys. Stop the bleeding.

03

Modernise gradually

One module at a time, deployed continuously, always live. No code freezes, no big-bang cutovers, no panic.

What clients say

Kind words from people I've worked with

Jamie has been instrumental in building My Trust List from the ground up. As our senior full-stack developer, he combines genuine technical depth across Laravel and modern web architecture with the kind of pragmatic problem-solving you only get from someone who truly owns what they build. He communicates clearly, ships reliably, and consistently makes the right call on the trade-offs that matter. I'd recommend him without hesitation to any team serious about quality.

Martin Spencer

CEO & co-founder

We have worked with Jamie since 2024 after approaching him to support and maintain our vehicle recycling platform built by a previous developer. Since then we have fixed numerous bugs, upgraded to the latest library releases and built new functionality including a brand new mobile phone app for our drivers. Knowing we pay the same amount each month and can bank any unused time helps with our cash-flow and we know he'll be on-hand whenever we need support.

William Nelson

Operations Manager

Jamie is a safe pair of hands when you need someone. I have worked on a number of projects with Jamie. (Custom APIs mainly, but server and security related items as well). He responds quickly, follows up without needing to chase and completes tasks in a methodical way. He finds the last bugs with thorough testing; so we are confident at launch that everyone will be pleased.

Marcus

Owner

Common questions

The things people usually ask

Almost always refactor. Rewrites take twice as long as you think, customers see no benefit during the rebuild, and the rewrite tends to acquire its own legacy baggage before it's done. I default to gradual refactoring unless your specific situation genuinely warrants starting fresh.
I've worked on apps written in PHP 4.0. There's no "too old" — just different levels of caution required. Older codebases need more careful audit work before you start changing things.
Yes — CakePHP, CodeIgniter, Symfony, ZendFramework / Laminas, Yii, plain PHP. Often the migration target is Laravel, but not always.
I take on technical work for WordPress-based businesses — custom plugins, headless setups, performance work — but I'm not a theme-tweaking shop. If you need pure WordPress site management, I'll point you elsewhere.
Usually 2–5 days depending on codebase size. You get a written report at the end you can act on immediately, with or without me.
Yes, very happily. A lot of my legacy work involves partnering with an in-house developer who knows the business but wants senior help on the technical side.
Get in touch

Tell me about your codebase

Roughly how old is it, what's on it, and what's prompting the move? A few lines is enough to start.

No hard sell. No obligation. Just a friendly chat about whether we're a good fit.

Jamie
Jamie — PHP & Laravel Developer 📍 Swansea, UK · Responds within 2 working days
Your name *
Email *
Company / project
What are you looking for?
Tell me about your project

No spam. No sales calls. Just a friendly reply from me.