Led the frontend migration of a decade-old PHP monolith to a decoupled React SPA backed by Node.js microservices. Delivered a strangler-fig migration pattern enabling zero-downtime cutover and a 34% improvement in checkout conversion.
A 10-year-old PHP monolith serving 80k monthly active users needed modernisation without a big-bang rewrite risk. The legacy codebase had no tests, tightly coupled business logic in Blade templates, and a checkout flow that was losing 34% of users at the payment step.
Implemented the strangler-fig pattern: new React pages deployed in parallel behind a feature flag, with the PHP backend proxied via a Node.js API gateway. Teams migrated page-by-page over 10 months. A new Stripe checkout flow with address autocomplete and one-click saved cards replaced the 7-step legacy form.
Checkout conversion improved 34%. Page load times dropped 60% on the migrated routes. The codebase now has 78% test coverage (up from 0%). Zero-downtime cutover was achieved — no customer-facing incidents during the entire migration.