Skip to main content
LU
Back to portfolio

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