THE CHALLENGE
The impact of early technology choices on scaling fast
Swiss-based tech product company FAIRTIQ makes public transport easier than ever by enabling users to travel without the need to pre-purchase traditional tickets. Users simply check in via the FAIRTIQ app at the start of their journey. Check-in triggers sensor data collection, the app detects when the trip ends, and a journey mapping algorithm reconstructs the route using timetables, graph algorithms, and neural networks. The pricing engine then calculates the cheapest fare before invoicing the user. Currently FAIRTIQ processes 320,000 trips daily and is available in eight European countries where it’s used actively by over 1.3 million people. Now expanding into new markets, the company’s goal is to simplify sustainable mobility internationally.
As a five-person startup in 2016, FAIRTIQ had a blank sheet when it came to its tech stack and a clear aim of 100% uptime. “As a startup, you want to be fast,” says Michel Yerly, Chief Technology Officer of FAIRTIQ. “We had only four months to bring our journey mapper from a prototype to a full product with pricing payment, customer care service, and integrate it with public transport systems.” FAIRTIQ opted for Heroku, since according to Yerly it was the simplest solution for deploying web applications to the cloud at the time. For its database, the company chose PostgreSQL, which came readily integrated with Heroku, allowing for rapid deployment—an essential advantage given the tight timeline from prototype to production.
But, PostgreSQL’s rigid schema, complex database migrations with downtime, and reliance on object-relational mapping soon proved cumbersome for FAIRTIQ’s needs. After 2 months, to maintain agility and flexibility, the company transitioned to MongoDB—its schema flexibility would allow the app to evolve without the constraints of traditional migrations. “The way I see it is that the schema sits inside the application as opposed to inside the database,” says Yerly. “A big advantage is if you release the schema upgrade, you release the microservice – you don’t need a database migration script, which will complicate your release pipeline. That’s important if you have continuous delivery, so it was the right thing for us.”
