The Challenge
The app was already live with real users, but the codebase underneath it was fragile: broken flows in booking, authentication and data handling, stale-data and race-condition bugs, and a structure that made every fix risky. The job was not to build something new — it was to make an existing product trustworthy without taking it offline.
- Live app with real users — no room for breakage
- Broken flows across booking, auth and data handling
- Stale-data and race-condition bugs in state management
- A structure that made every change risky
