Legacy modernization and architecture
Legacy modernization: upgrade Java, PHP and .NET systems without stopping the business
Older systems often run the business but are slow to change, hard to deploy and difficult to hire for. Modernization does not have to mean a risky rewrite.
I spent ten years at HCL Technologies on enterprise systems for Cisco, Telstra, Symantec and Openwave: Java and Spring backends, microservices, build automation and management consoles. Today I also add AI features, such as document search and agents, to existing products.
Problems I solve
Every change is risky
Without tests and clear boundaries, small changes break things. I add regression coverage before changing behaviour.
Slow pages and timeouts
Performance problems usually hide in queries, caching and synchronous work. I measure first, then fix what matters.
Manual, fragile deployments
Manual releases slow teams down. CI/CD with Jenkins, GitHub Actions or Docker makes releases routine.
No path to AI features
Legacy data can power RAG search and agents without a rewrite, through well-designed APIs around the existing system.
What I build
- Architecture review
- A written assessment of the current system, risks and a phased modernization plan.
- Incremental refactoring
- Strangler-pattern migration to services or a modern framework, one module at a time.
- Upgrades
- Java and Spring Boot, PHP and Laravel, .NET version upgrades with tests to prove nothing changed.
- Performance work
- Query optimisation, caching with Redis, background jobs and profiling.
- Cloud and DevOps
- Containerisation with Docker, CI/CD pipelines and migration to AWS or managed services.
- AI integration
- RAG search over existing data and agents that use the legacy system's APIs safely.
Related work
- echo-prompter
Parallel-agent AI prompt automation platform
Echo Prompter
An enterprise platform that runs prompts 10–100× faster with parallel agents, and regression-tests AI output for drift and hallucinations.
Read the case study →

Contract-review RAG platform
BriefPilot
Contract review that cites the exact clause, reconciles amendments and grades every contract against your playbook.
Read the case study →
How we'll work
Step 1
Understand before changing
Read the code, map dependencies and talk to the people who run it.
Step 2
Add a safety net
Regression tests and monitoring around the parts that will change.
Step 3
Modernize in slices
Small, reversible steps that each ship to production.
Step 4
Hand over
Documentation, runbooks and a team that can keep improving it.
Technology
- Java
- Spring Boot
- Microservices
- JUnit
- PHP
- Laravel
- .NET (C#)
- Python
- Jenkins
- Maven
- Docker
- AWS
- PostgreSQL
- MySQL
Frequently asked questions
Do we need a full rewrite?
Rarely. Most systems can be modernized incrementally, replacing one part at a time while the business keeps running.
Which legacy technologies do you work with?
Java and Spring, J2EE, PHP and Laravel, .NET and C#, Python, MySQL and PostgreSQL, from ten years of enterprise delivery at HCL and freelance work since.
Can you add AI features to an old system?
Yes. Document search, chatbots and agents can sit alongside the existing system and use its data through APIs, without changing its core.
Do you start with an assessment?
Yes. A short architecture review gives you a written plan with risks and phases before any large change is committed.
Tell me what you're building
A short description of the problem and your data is enough. I'll reply with questions and a time for a call.
Start a project