Skip to content

CUP Carsharing — Arval Car Sharing, Share'N Go & MiMoto

Mobility platform

2015 - 2020 · R&D lead and platform architecture

Omniaevo's multi-operator car- and scooter-sharing platform — native iOS and Android apps, a PHP and Node.js fleet backend, and a real-time link down to each vehicle's on-board computer — powering Arval Car Sharing, Share'N Go, MiMoto and more.

Software That Unlocks Cars

Built at Omniaevo, where I led the automotive R&D team — promoted from senior backend architect to development team leader — this is the platform that turned a phone tap into a real vehicle moving. One core system, branded and operated as several different car- and scooter-sharing services across Europe.

The product was never a single app. It was a multi-operator shared-mobility platform: the same engine ran the live services — Arval Car Sharing, the distinct Share’N Go free-floating service and the MiMoto electric-scooter sharing — and was spun up as MVPs to court prospective partners, among them Avis (piloted in Australia), EasyRide and a Star Car Alliance setup. Each live service ran as its own brand — its own apps, fleets, pricing and cities — on top of one shared core, with per-operator configuration, back office and deployment.

The hard part was not a screen; it was the reliability chain from a user’s tap to a physical vehicle state, end to end. A booking on a phone had to reach the right car parked on a street, unlock it, authorize ignition, track the trip over mobile networks, then close and bill it — and stay correct when connectivity, hardware or a driver did something unexpected. That chain crossed mobile apps, microservices, a message bus, vehicle firmware and operational support, and all of it had to agree on the truth.

The backend reflected that. The core fleet and business logic ran on PHP with the Zend Framework and Doctrine, over MongoDB and PostgreSQL with PostGIS for geospatial queries, with CartaSi card payments and JWT-secured access. Around it sat a fleet of Node.js microservices — a ZeroMQ/Redis message router carrying vehicle commands and telemetry, MQTT for device messaging, REST APIs, an email hub, a live-vehicle map and heatmap whose front-end went from AngularJS to Svelte, admin and operational bots. The whole estate ran containerized on Kubernetes — Google Kubernetes Engine over Compute Engine — with Apache Kafka for high-throughput event streaming, on Google Cloud: the cutting-edge automotive stack I introduced into the R&D department.

We deliberately tried to break it. With Locust — the open-source swarm load-tester — we hit the live platform with DDoS-scale traffic while it was serving real users, and watched Kubernetes’ horizontal pod autoscaler add capacity under the pressure. It stayed up and held around 150ms of total latency throughout.

On the device side, drivers used genuine native apps: iOS in Swift with UIKit, Android in Kotlin, built per operator for booking, vehicle access, live maps and trip management. Those apps were the visible tip; underneath, the platform reached all the way into the cars.

That reach is what made it unusual. Each vehicle carried an on-board computer — embedded firmware in C/C++, with its own SDK tooling and map installer — and the platform interfaced directly with it and the OEM PCBs in the car, in real time: lock and unlock, immobilizer and ignition control, GPS and CAN telemetry, remote diagnostics. Software talking straight to the metal, not through a third-party box.

Through Bulweria Ltd — the UK company that held the CUP Carsharing software — the platform reached the 2017 Fleet News Awards as a finalist for “Most Innovative New Product or Service”, recognition from a demanding fleet-industry jury for a system that closed the loop between an app and a moving car.

Gallery