From 201 to 500
Amazon Web Services (AWS), Flutter, Go, Kotlin, React, Scala, Swift, Kubernetes
checkValues work/life balance
checkShare & grow together
We are a young and innovative mobility company aspiring to change people’s lives by re-imagining urban mobility. MOIA is developing a radically new shuttle-on-demand service that will bring affordable, clean and convenient mobility to everybody and make cities a better place to live.
Running as an independent company under the umbrella of the Volkswagen Group, we are able to utilize the resources and know-how of a global corporation – while being an agile, experimental and team-spirited start-up.
Our fast growing team in Berlin and Hamburg has a human-centered perspective on mobility and is focusing on one goal: Be one of the leading global mobility-service-providers by 2025.
Sounds exciting? We are looking for bright minds who want to join us on this exciting and challenging journey. Become the next member of our diverse, inspired and highly skilled team!
By Nihal Gonsalves & Jay Morrow
You may know MOIA from our eye-catching vehicles driving around Hamburg, or from our apps — but what’s behind the scenes at MOIA Engineering?
MOIA runs a ride-sharing service in Hamburg and Hanover, with our own apps, backend services, drivers, and vehicles, that all come together to provide a fully-integrated, affordable, convenient, and modern ride-sharing experience.
Through this series of blog posts we’d like to show you what makes MOIA run, demystifying some of the magic behind how our technology runs the ride-sharing service for the cities of the future.
The MOIA+6 is at the core of our mobility experience. To run a dynamic ride-sharing service, we equip our vehicles with an embedded computer, a remote unlocking module, a telemetry unit, a WiFi router and two connected displays: an info-screen for passengers and a tablet for navigation.
Every MOIA+6 communicates multiple times a second with our cloud platform over MQTT (AWS IoT) to send information on over a hundred different metrics including sensor data, geolocation data, and automotive telemetry (down to the angle of the gas pedal!). Our backend systems continuously tell the vehicle about new passengers, routes, and up-to-date travel times for all pickups and drop-offs. We also make use of IoT Greengrass to run a small slice of AWS in the vehicles themselves, making for a seamless experience even through momentary connectivity hiccups like driving through the Deichtor-Tunnel in Hamburg.
Hidden away in the cloud are our purpose-built microservices running on various AWS compute environments, keeping track of every vehicle and passenger request that comes in, pooling passengers, routing vehicles, and equipping the MOIA Operations teams with the tools they need to run an excellent, highly-available service. These are built with various technologies best suited for the job at hand. For compute, we use Kubernetes on AWS EC2, AWS Fargate, and AWS Lambda, depending on the workload. We tend to stick to fully-managed AWS services by default (including DynamoDB, RDS, IoT, Kinesis, S3, API Gateway, and Greengrass), making exceptions when it makes sense. Each team chooses a programming language suitable to the problem, mainly (but not limited to) Scala, Kotlin, and Golang.
These microservices communicate primarily asynchronously using domain events, and all come together to provide a consistent, unique experience for passengers, as well as our drivers and hub staff.
Dispatching keeps track of our entire fleet, communicates frequently with our vehicles, and (as the name implies) dispatches the best vehicle to every customer. It knows exactly where each vehicle is, which passengers need to be picked up and dropped off, and when the vehicle needs to return to the hub (to recharge or to end a driver’s shift on time). Dispatching makes heavy use of AWS IoT to have up-to-date telemetry data.
To serve a trip request, Dispatching selects a pair of virtual stops from the MOIA Stop Network most suitable for the passenger’s origin and destination. It then asks Dynamic Routing for an optimal route according to various criteria including the estimated travel time based on the traffic situation, pooling efficiency (passengers pooled in a single vehicle), and the drop-off time promised to other passengers.
Vehicles are also constantly re-allocated by Dispatching to optimal areas and are periodically sent back to the nearest hub with free charging points for recharging when required, as well as when the end of a driver’s shift is upcoming.
If you’ve ever used MOIA, these are the two services that work directly with the app to make your trip possible. From the moment you hit the “Get Offer” button, Trip Booking takes over and coordinates the saga of everything that needs to come together within seconds to guarantee you a great trip.
Trip Booking communicates with all the other backend services to present you with a suitable route, fetches a dynamically-calculated price from Pricing (depending on the distance, weekday and time), and comes back with an ETA and your pickup and drop-off stops. Once you slide-to-order, it confirms the validity of your payment method with Payment and confirms your MOIA with Dispatching.
The Payment team works with our payment providers to ensure a seamless payment experience no matter what customers choose to pay with: credit or debit card, Apple Pay, Google Pay, or PayPal. It also keeps up with the various compliance requirements such as the EU PSD2 and SCA (Strong Customer Authentication).
The hub teams work round-the-clock to optimise supply by keeping vehicles in tiptop shape, charged, and ready to go, and planning driver shifts optimally. The Fleet and Employee Management teams provide the technology to make these processes efficient, keeping track of various workflows such as service area and stop network management, shift planning, damage reporting, vehicle hardware management, TÜV inspections, maintenance, and everything else. This is exposed via a React frontend and a combination of REST and GraphQL.
The Fleet service additionally provides a keyless experience to drivers by utilising the remote unlock and telemetry unit in the vehicles.
There isn’t enough space in one blog post to talk about everything that makes MOIA run — including the mobile frontends (that utilise Kotlin, Swift and Dart — Flutter), DevOps, incident handling, and the many small services that have so far gone unmentioned.
In the coming months, we want to tell you more about how we work at MOIA, including our agile processes, engineering culture, and of course, the many team events, parties, and office dogs.
If what we do sounds interesting to you, and you’d like to work on an innovative, sustainable, and affordable mobility service for the cities of the future, learn more about open positions on our career page
Agile methods like Scrum and Kanban have taken over the modern software development process, but each company is a unique system with its own challenges. With the various definitions of “agile” floating around, what does agile mean to us at MOIA?
MOIA was founded in 2016 to build a modern ride-sharing service for the cities of the future — reacting quickly to change has always been a part of our core DNA.
Our agile coaches, Antonela and Laura, will tell you more about how they work; to improve how we work.
Antonela: To me, agile is about finding creative and self-organized ways to deliver value in iterations, and learning from experience. MOIA has had a complex task charting new directions in the market by offering an innovative mobility service, and agile was the natural response to it. It feels like a part of the company’s DNA.
Laura: I fully agree with that. To me agile at MOIA is about a self-organized and responsible method of collaboration. Since the beginning everyone has owned their share of making MOIA better every day. We constantly learn about ourselves, our service, our market, and how to improve our work, as well as our way of working.
Laura: Even though I have seen and worked for really amazing companies before, I have never been in an organization where everyone is this passionate about their work. I think that one key factor is the strong vision that MOIA was founded out of, one that is very present in our daily work. Throughout my time at MOIA we have always had clear goals that derive from this vision. In addition to these goals we also have the freedom to decide for ourselves about how we want to achieve these goals in the most effective way. This mixture of passion, purpose-driven development, and trustful autonomy makes MOIA really unique to me.
Antonela: Adding to that, I feel that MOIA is successful because it started with teams of capable and passionate people who were eager to find ways to make it work. There is a strong sense of purpose and passion. People here know the why, and that gives us the chance to put all our resources and creativity into discovering ‘what’ and ‘how’.
Antonela: Another thing that I love about MOIA is that we value matter over form; we are more focused on “doing” than on naming things. As agile coaches, our main task is supporting the team with coming up with a process that enables them to reach their goals in a sustainable way — whatever that is. In a practical sense, this means that I like sharing my knowledge and experience with the teams and then giving them space to come up with solutions together. I enjoy borrowing ideas and approaches from different methodologies and finding new ways to tailor the solution to the specific needs of each team.
Antonela: At MOIA we are really passionate about our customers. There is a strong focus on learning by doing and analyzing data. I am extremely happy to say that MOIA is not the right company for people who enjoy endless hypothetical discussions. We could improve by being even more courageous and embracing failures as perfectly tailored, made-to-order lessons.
Laura: As Antonela said before, we strongly believe in individual adaptation over using a specific framework. We embrace change and all the new lessons that come with starting such an innovative and complex service from scratch. At MOIA no one has ever told me that I have to do my job in this or that way, and I value this freedom a lot. However, the responsibility to shape my role into an effective one is placed under my control.
Laura: As a rather young company we are not only constantly learning new things about the market we are in, but also are still growing every month. This means that even though we value flexible adaptation, it is also challenging for us to keep up the pace while still building trustful relationships in our teams and delivering valuable features to our customers.
Laura: I’m really proud to say that broader decisions are made by everyone in the company who is passionate about the concerned topic. These topics can also be brought up by anyone, for example in our bi-weekly round regarding ‘How we work’, or in a company retrospective. Regardless of the origin of a problem, we invite everyone to participate in finding a new solution. To us it is imperative that we shape our decision-making culture from a similar cross-functional perspective.
Antonela: And adding to that, I am impressed by how MOIA as an organization is able to simultaneously encourage participatory decision making while staying responsive and being able to come to decisions quickly.
Antonela: My wish for MOIA is that we stay strongly focused on our company’s mission and continue to find the right questions and answer them in synergy.
Laura: Like Antonela, I wish that we keep raising and answering the right questions. To me this is strongly connected to getting more data from our customers and the overall service to learn about us from a neutral perspective.