Cover Image for The Story of MaaS Global

The Story of MaaS Global

Sami Pippuri
September 27, 2024

Epilog

I wrote the following Linkedin Post

End of the wild ride. Pretty much exactly 8 years ago, we were busy creating the first release of Whim, which was to become the benchmark for its user-centric design, and the first commercial MaaS subscription service. It boggles my mind that the UX benchmark persists still today.

So many fantastic colleagues contributed, and we had fun along the way too. I think that playfulness showed in the product. Unfortunately, we were probably guilty of trying to get from zero to one in one go - the transportation market is fragmented and moves slower than an agile startup. If I'd do some writeups about the journey and learnings, would you spend the time to read them?

Now is the time to make true to the promise and start writing.

Introduction

Yeah, a while back, I made a semi-public promise. That is, to write about the journey of MaaS Global from my point of view. I pretty much immediately regretted the statement once it caught fire on Linkedin – it was more like a test to see if people even bother reading a post that far, and then engage with the post.

It took a while. As it seems, during COVID and working remotely; I’ve become worse at procrastinating. Getting started with writing wasn’t easy. I tried every AI I could get my hands on, but none of them really came up with the story for me. I tried starting to shoot videos. It didn’t work, but at least I have some content now that I could cut into segments, forming a new podcast/YouTube channel. So I had to resort to the one ancient trick: just start writing to get over the writer’s block.

Back in 2015, I had recently gotten a well-earned “package” from Nokia (more about that time under a separate topic) and was developing a hyperlocal newsfeed app based on open data. That took me to events dealing with the local Helsinki ecosystem that was a bit foreign to me, having spent most of my time in a global role. There I was at a cocktail party at the city hall, and heard about Mobility as a Service for the first time. It was from an MSc student from Aalto University, Sonja Heikkilä.

During the Q&A session, a guy in the audience started answering some of the questions passionately, saying wouldn’t it be great to have a Volvo station wagon during weeks to haul the family to school and hobbies and then a convertible during the weekends? As a car guy I thought, sure. But then he continued, that actually, having that Volvo parked in my driveway is a waste and I should just take a bus. Clearly, the guy didn’t know the situation with public transport in my area, and I thought this MaaS thing wasn’t for me.

A bit later, there was an article in the major newspaper Helsingin Sanomat about that loud guy in the audience, Sampo Hietanen.

Meanwhile, I had joined a media startup called HYBE (making a startup TV show and a tech show called Teknavi) as their CTO. We were busy building cross-channel experiences including TV apps and phone apps, and I built a serverless backend for transcoding videos to various streaming formats for mobile. But it was clear from the numbers that it wasn’t working, and the owners lost patience quickly. But along with the team, I had participated in meetings with the larger parent company where I had met Kaj “Kaitsu” Pyyhtiä. I guess I had left an impression as when Kaitsu heard that the startup was shutting down, he called me up and asked me to come over to discuss their new startup, MaaS Finland.

Initially, I was skeptical. I had two nice BMWs parked out front and would hate to give them up for this concept. I also had a job at a “real” company lined up.

But I went to see them anyway. Sampo explained his vision, and I understood that maybe MaaS could also mean that for me, who is living on the outskirts of the city, MaaS could also mean access to a “celestial garage” – pick any car you want to drive today, without the shackles of ownership. Now that would be something I could get behind. Furthermore, Sampo seemed totally focused on the vision part and not the “how” part, saying how it’s done is all up to me; he’s not going to intervene.

For an engineer who is pretty allergic to micromanagement, this sounded great. Though I did have that other job lined up already, in contrast to this one, I wasn’t excited about the vision or the challenge. But would I go from one failed startup to another startup that has less than a year’s runway?

I noodled on that dilemma for a day or so, working on the assignment for Sampo. The task setting was rather simple: what kind of a system would I build for him? It had to be consumer-first, built to scale, and capable of integrating thousands of different mobility service providers (MSPs) with ease.

This was in early 2016, and I had become a huge fan of the Serverless framework (originally, JAWS). It was great, just write some Node Javascript and deploy to cloud. There were no servers to maintain or scale, and it was quite cheap, too.

So I had a hammer in hand for which I needed a nail. The corporate job definitely wasn’t going to be the one for it. Dreaming up the architecture for the first MaaS service out there, I could see it clearly, I had so much to give and so much to learn from this project – so hey, the worst thing that can happen is that we run out of money, and we’ll have developed a Serverless end-to-end system and run it in production, in 2016. I drew up an architecture built with microservices on Serverless that were driven via an API that provides a clean abstraction of everything to virtually any frontend device, a framework for plugging in MSPs with an abstraction API, and another framework for journey planning so that the system can benefit from whichever service works best in a geography. Lots of dynamic components that are location-specific, which was necessary to run a single global service with plenty of regional services.

And think about a celestial garage of cars at my disposal.

That was it, FOMO struck. I pictured these two crazy founders really making it big and me not being part of it. I could not let that happen, someone else getting the credit for building this thing that became a phenomenon. I had to do it.

So I called Sampo up, presented what I wanted to do and he said I’m hired. Fast forward a couple of days, and we signed on the dotted line on top of a postbox at the Kamppi transit terminal, and Sampo introduced me to the local ITS ecosystem as MaaS Finland’s CTO at their event held at the Ministry of Transport.

It was an interesting time in the local transport sector, as the Ministry was putting the final touches on the new Transport Code, which was heavily influenced by the ITS ecosystem including Sampo. The new legal package called for de-regulating the taxi market and requiring the MSPs to open APIs for their services – all things that were seen as extremely helpful for MaaS. The strategy called for Finland to be leading in the creation of new mobility services, and MaaS was the poster child of all this.

Of course, this favoritism caused friction with the incumbents.

Taxis had enjoyed a closed market where they had controlled the number of cars and had very strict regional rules for pick-ups. The system was developed to maximize the utilization of the vehicles while giving the regulators comfort that people can get taxis in sufficient numbers and prices are predictable, if not cheap. Digital services were poor, and traveling people had indicated their desire for new digital dispatches, such as Uber, with their comparatively superior UX, but the taxi market had not made the necessary investments.

Ditto for local transport. Their digital services were nonexistent, and they still believed that a physical travel card was the perfect solution for them, enabling them to analyze traffic patterns and ensure a positive balance or float – even though schemes such as contactless EMV had proven themselves in London. But customer happiness wasn’t clearly the driving force in the strategy, rather control and maintaining the status quo. Rail was in a very similar position with a national monopoly operator that was perfectly happy with the way things were for themselves.

I came to learn about this friction pretty much at the first meeting already, trenches had been dug. We had these largest operators in the whole country, trying to cement their position for decades to come by shutting down any craziness of changing things, and there was us, a three-person startup with pre-seed funding and a new untested law package that we thought would have our backs.

But luckily for me, I had more immediate topics to take care of. I had an app and a system to build, company infrastructure, hiring, Wi-Fi, and office chairs to set up. But most importantly, had to go get a coffee machine for the office. We had rented out a temp office in a very visible and central place, at the HQ of Helsingin Sanomat, ground floor, with glass walls, since the space is supposed to be a showroom. It was not ideal for software teams, but it had to do; after all, we were an early-stage startup.

Since our runway was decent but expectations were incredibly high (Sampo had of course made some promises), there was no time to wait for FTE hiring for staffing the team, and we had to get going with external resources. We got going with a few choice vendors, QVIK for the client side and SC5 for the backend. QVIK, I knew, was very good at consumer apps, and SC5 was a proponent of Serverless, so they were pretty obvious choices. Also, there were some people I could really trust in those companies, so if anything were a problem, I was sure we could talk about it openly.

The early days and weeks flew by as we were having a good time – a 1.0 project is always the most fun to develop. We were making designs on the fly, huddling around whiteboards, designs, and business concepts. The first demo was done very early, thanks to the quick setup of serverless infra. We had multimodal routing with taxi and PT, by leveraging the journey planning API that SkedGo had kindly provided us with.

This is where we first discovered a few things that would plague us for a long time.

The performance was terrible. Like, really, really bad. You can’t imagine how bad it was. Things took forever and then resulted in an error. It was caused by Lambda and API gateway timeouts, combined. I thought, “What have I done?” in going with Serverless. I kind of kept it to myself, thinking I could solve it with the team.

Luckily the tech choice wasn’t the only culprit, it turns out that multimodal journey planning was extremely slow in itself, after all the algorithm needs to factor in so many modes and their differing combinations. After some trials, we concluded that by shaking down the size of our lambdas, we could get decent performance, albeit with still some significant cold starts, but there was nothing we could do to the journey planning performance since it wasn’t our code – by choice.

We were in the “getting butts in seats” business, not in the “creating the best multimodal algorithm that people don’t pay for” business. The idea was to use the best planner available and leverage, e.g., Google’s massive investments in this area. With our runway, we could easily spend it all on just the algorithm without shipping anything, so it made sense to just use what’s out there. But clearly, multimodal planning was overhyped, so we gave it up and went mode-specific. We could always go back once the market matures.

The first ride ever ordered, was by accident.

Lähitaksi was the regional taxi call center that seemed to move quickest on the business level and gave us access via the slightly flaky “Valopilkku” aggregation layer. And our tests run in the deployment pipeline called a an actual taxi to our office in Sanomatalo. The driver was not happy that time, nor were some of the following victims for unintended taxi hails – it actually became like an indoctrination rite for new developers in the team that you know you’re working on MaaS and real-world things when you get a call from an angry taxi driver waiting for you outside when you accidentally used production to test something. We'd all do it at some point in our learning curve.

[TO BE CONTINUED - in the mean time, you can Book me for an advisory session or get yourself a copy of my MaaS/Whim Slides!]