Case study
Modernizing the system behind 27 metro stations' turnstiles
Rebuilding a fragile legacy core for Medellín's transit network — without stopping it
- Client
- Sofka Technologies / Medellín Metro
- Role
- Software Development Analyst Lead
- Period
- Oct 2019 – Dec 2021
Every person who rides Medellín's metro passes through a turnstile validated by one system. When I took over as lead, that system was so fragile that any change risked taking fare collection down across the entire network — all 27 stations.
Impact at a glance
- Stations running the new system
- 27
- Of the turnstile network modernized
- 100%
- Network-wide outages during rollout
- 0
The challenge
The legacy application had grown for years without tests, documentation, or a safe deployment path. Teams had stopped touching it: the cost of a failed change was the city's transit network rejecting passengers at the gates.
At the same time, the metro was rolling out new card-reader hardware, which the old system simply could not integrate. Standing still was no longer an option.
What I did
I led a from-scratch re-architecture of the application, carving the monolith's responsibilities into well-defined services with Java, Spring Boot and Quarkus, backed by MySQL and MongoDB.
The new architecture made deployments boring: changes could finally ship safely, repeatedly, and without network-wide risk — for the first time in years.
I worked directly with the card-reader manufacturers to configure, test, and integrate the new turnstile hardware across all 27 stations, and implemented the real-time card validation logic against the hardware APIs.
As lead, I ran code reviews, set technical direction, and oversaw delivery for the development team throughout.
Results
- Safe, repeatable deployments for the first time in years on a city-critical system
- New turnstile hardware integrated across all 27 stations
- Real-time card validation running against hardware APIs
- Zero network-wide outages during the modernization
Tech stack
- Java
- Spring Boot
- Quarkus
- MySQL
- MongoDB
- Hardware APIs