HipCar
Citylink folded into HipCar, and the combined car-sharing, ride-sharing and taxi platform was moved off a .NET monolith one service at a time — with no big-bang rewrite and no pause in shipping.
- Year
- 2021–2024
- Timeline
- 3 years
- Team
- 20+ engineers
- Stack
- 8 technologies
99.9%
Availability
−50%
Release cycle time
20+
Engineers, 2 countries
0
Big-bang rewrites
Monolith to microservices, in production. Figures measured against the process this platform replaced, twelve weeks after full rollout.
The problem
Two merged companies, one .NET monolith carrying the whole business, and a release cadence slow enough that fixes queued behind features. Rewriting it wholesale would have meant a year without new capability — commercially impossible.
The approach
Strangle the monolith. Carve out one service at a time, starting where the pain was measurable: dispatch and billing, separated behind RabbitMQ so a slow invoice never delayed a ride assignment.
Monitoring came before migration in every case. If we could not see a subsystem fail, we did not move it yet.
The build
Asynchronous workflows were redesigned rather than lifted, and WebSocket channels were added between the platform, the vehicles and the driver apps for location, ride state and dispatch events.
Across an engineering organisation split between Romania and Moldova, release cycles were cut roughly in half and availability settled at 99.9%.
The stack
PHP 8 / Symfony alongside C# .NET microservices, MySQL and PostgreSQL, Redis, RabbitMQ and Kafka, WebSockets, AWS, native iOS in Swift and Objective-C.
Technologies
- Symfony
- C# .NET
- RabbitMQ
- Kafka
- PostgreSQL
- Redis
- WebSockets
- AWS
Tell us what you’re trying to ship
A first call is thirty minutes and costs nothing. Bring the problem, not a spec — working out what to build is the part we are good at.
Or email office@symphonyapps.ro. We reply within one business day, in English or Romanian.
