I built Rector, which upgrades and refactors your codebase for you. Turns out the hard part was never the code.
So these days I do two things: I write about the tooling here, and I coach leaders whose codebase got slow to deliver - towards one that is modern, fun, and mostly takes care of itself. My team also does the upgrade for you, if you would rather skip the character-building part.
I studied psychology at university and later trained as a coach, which is a strange CV for a PHP person until you have sat in the retro where nobody says the real reason. Legacy code carries trauma: the outage someone got blamed for, the refactor that was punished, the deadline that taught everyone to stop touching things. You can rename a class without touching any of that - and it will grow back. So I go for the core first, then the code follows.
Stuck on a codebase nobody wants to touch? Let's talk about it.