Approach
Read before I change
How I decide what to modernize, what to leave alone, and which tools to use for the work.
Why not a rewrite
The old system knows things nobody wrote down
Fifteen years of invoicing rules, customer exceptions and integration quirks live in that code and nowhere else. A rewrite has to rediscover all of it, usually by breaking it in production.
Rewrites also take longer than estimated, and the old system needs changes the whole time. Teams end up maintaining two applications, and the new one does not earn anything until it replaces the old one completely.
Incremental modernization reverses that. Each step is small enough to review, ships on its own, and can be rolled back. The system gets safer every few weeks instead of in one big, late cutover. Business continues throughout.
Sometimes replacing a component is the right call. When it is, I will say so, and scope it to that component rather than the whole application. One of the case studies is exactly that exception.
Tools
AI-assisted. Experience-driven.
I use modern AI-assisted development tools when they help me understand systems faster, explore unfamiliar code, generate tests, document behaviour and accelerate repetitive work.
But legacy modernization is not a prompt-and-rewrite exercise.
A 15-year-old PHP application often contains undocumented business rules, historical compromises and edge cases that exist for reasons no AI model can reliably infer.
AI can accelerate the work. Engineering judgment decides what work should actually be done.
Where AI helps
- Understanding unfamiliar code
- Finding patterns and dependencies
- Generating test scaffolding
- Documentation
- Refactoring assistance
- Repetitive implementation work
Where experience matters
- Understanding business risk
- Architecture decisions
- Identifying hidden business rules
- Migration strategy
- Production debugging
- Knowing what not to rewrite
The goal isn't to use AI everywhere. It's to use the right tool for the problem.
See it applied
Two systems, two different decisions: one migrated in place, one rebuilt around its business rules.