By now we've all heard of SaaS - do you know what MaaS is?
MaaS – or Mobility as a Service is a new type of business that is on the rise. It represents a type of service that allows passengers to buy tickets for several different types of transportation with the help of a single digital channel.
What does it look like in practice?
With one app you can plan your trip from a small town in France to Amsterdam covering all the means of transport you need to get there – taxi to train station, train, bike from train station to tram and tram to your desired location in Amsterdam.
In order for something like this to be possible, the MaaS application must be well connected with all modes of transport, i.e. companies that provide these services. How is this achieved and what are the challenges behind it?
Ximedes is in charge of solving one part of that problem – the billing system between passengers and transport service providers. As they mainly operate in the FinTech area, developing a new payment system that would make public transport more accessible was a challenge they were happy to undertake.
How they approached that challenge, their CTO, Joris Portegies Zwart and Product Owner - TapConnect, Marcel Toorop, answered us.
Billing systems for MaaS providers
Ximedes is currently developing two billing systems for MaaS providers - TapConnect, which is already implemented in the Netherlands, and VayaPay, which they are just starting to develop.
TapConnect is a barcode solution that allows transport service providers to easily sell tickets that give passengers access to different types of transport (tram, bus, train).
VayaPay is a FinTech startup that enables an EMV payment system (payment via payment cards) for public transport service providers.
Joberty: Although they seem similar, what are the main differences between TapConnect and VayaPay?
Joris Portegies Zwart: "Yes, apparently TapConnect and VayaPay have a lot of similarities. Both platforms provide the opportunity for passengers to use public transport without using traditional transport tickets. TapConnect allows passengers to use QR codes as proof that they can use that transport, and VayaPay allows them to use payment cards for this purpose.
But, if you look a little closer, you will see significant differences between those products, both in the functionalities they provide and in the technical background they have.
First of all, QR codes are bought in advance, for an already planned trip. For example – you can buy a day ticket that allows you to move around Amsterdam 24 hours from the moment you check-in for the first time. TapConnect has an entire billing system that allows public transport service providers to issue tickets that are sold using the TapConnect API.
On the other hand, traveling with a payment card is much different. Instead of buying a ticket in advance, passengers can just touch their payment card to the device when getting on or off public transport. Based on these actions, VayaPay determines which route the passenger took and makes the payment using the information from the payment card. This mode of travel (pay-as-you-go) makes the journey much easier for the passenger but also requires a large investment (both hardware and software) on the part of the public transport service provider.
TapConnect is already starting to be used in the Netherlands, and we are also talking to potential customers from Germany and Nordic countries. VayaPay is still in the random startup stage (early-stage startup). We have a launching customer and we have started with the development of the platform."
Joberty: What are the biggest challenges you faced while developing these products?
Joris Portegies Zwart: "Both platforms have to collect data from physical devices in the field. The validator can be installed at the entrance and exit gates, as a device at the station itself, but also in the vehicle itself. In order to make the ticket check processing time as short as possible, each device establishes and maintains an open network connection with our platform. To support thousands of open network connections at the same time, and to remain responsive even when the platform is loaded requires a good interface and software design."
"On the other hand, it is very important that people can travel even when these devices are temporarily offline - otherwise the queues would be very long. This means that our software must be able to process ticket checks even hours after the ticket check has taken place and the user has been charged the correct amount for that service."
Joberty: Since the applications you develop must have APIs for integrations, how demanding was it to develop an API strategy for them? What made that strategy successful?
Marcel Toorop: "The most complicated thing was to make decisions that would not limit us in the future. At the very beginning, we still don't know a lot of details - so we have to make every decision very wisely. We often have to think ten steps ahead, so that we don't end up in a situation that is unsolvable or requires great effort to correct. We always try to give ourselves more time in the design phase and take a good look at everything, in order to save ourselves from potential pains in the future - direct and indirect. Direct - changes we have to make, indirect - changes we have to make as a by-product of direct changes. Of course, there are no perfect decisions, but it's always good to stop and look at the whole picture before making the next decision."
The perfect language for developing modern server applications
Joberty: As we can see, of the technologies, Ximedes uses Java and Kotlin the most. What are the benefits of using Kotlin for this type of product?
Joris Portegies Zwart: Kotlin is the perfect programming language for developing modern server applications. A modern language that doesn't have a bunch of design bugs that Java has accumulated over the years. Being 100% compatible with open-source Java libraries means we can use all the knowledge we already have without having to teach our developers to use new libraries and frameworks. But the most important thing is that our developers like to develop products in Kotlin - and a happy developer also develops good software!
Joberty: Are you limited in any way by predominantly using Kotlin?
Joris Portegies Zwart: No, Kotlin has completely replaced Java and we've never encountered a problem that Kotlin couldn't solve that Java could. Moreover, it would mostly be the other way around – Kotlin allowed us to build solutions that we could never have done with Java.
Joberty: Does your team sometimes combine Java and Kotlin knowledge?
Joris Portegies Zwart: "Our projects are mostly done either 100% in Java or 100% in Kotlin - although it is possible to combine them, so we generally create more problems than we solve. Fortunately, the compatibility between Kotlin and Java libraries makes it easy for us to do all projects 100% in Kotlin for sure.
Further development of the MaaS industry is inevitable, and in the coming period, it will only increase. It is assumed that by 2025, MaaS in the global market will reach a growth of over $301.22 billion."
If you are choosing an area in which to build your career, and you already have knowledge of Java and Kotlin, apply and work on developing FinTech solutions of the future.