Electric vehicle charging platform

Innowise took the client’s early product and rebuilt it into a solid, high-performance EV charging platform. It now handles millions of sessions and helps the company lead the European market.*

10M+

charging session records exported instantly

2x

increase in the number of users by launching eRoaming

Hero section image
Industrie Automotive
Regio Duitsland
Werknemers 50
Diensten Web development, Back-end development
Klant sinds 2022

Client overview

Artikel samenvatten met AI

Our client is a German company that helps businesses run their own electric vehicle charging networks. Their platform handles everything from station management and billing to user access and energy control. It supports private and public charging with tools for real-time monitoring, pricing, and third-party connections. The system is white-label, so companies can launch under their own brand without building the tech from scratch.

Gedetailleerde informatie over de klant kan niet openbaar worden gemaakt krachtens de bepalingen van de NDA.

Uitdaging

The client planned to grow across the EU and give drivers a smooth, all-in-one charging experience. But the web app — the main tool drivers used — wasn’t ready for it. Users couldn’t access live updates, use their cards at third-party stations, or check what was going on during a charging session. Features like eRoaming, smart energy control, and session tracking were missing, all of which mattered for standing out in a competitive market and landing new partnerships. Internally, the frontend worked fine, but the backend and infrastructure needed serious help.

Under the hood, the web application was already stretched thin. It couldn’t handle large data exports, had no real-time search, and didn’t support key EV protocols like OCPI or OICP. eRoaming was a must-have, but there was no way to plug it in without overhauling the architecture. The codebase was hard to maintain, deployments were manual, and performance issues were nearly impossible to track. Without a solid backend, DevOps pipeline, or observability tools, the platform wasn’t ready for scale.

Become the next eMobility success story

System architecture

Our client runs a full-service electric mobility platform that combines physical infrastructure with intelligent digital control. Acting as both a CPO and an EMSP, they own the full charging experience from hardware to interface.

Drivers access the service through branded web and mobile apps where they can find stations, start charging sessions, and pay. The platform manages real-time communication with external CPOs using standard protocols, supports cross-border eRoaming through Hubject, and handles all commercial relationships in the background.

The ecosystem includes Smart Charging and Energy Management tools for infrastructure partners, along with diagnostics, firmware management, and secure APIs that allow seamless integration with custom enterprise UIs.

Billing is handled through a flexible system that supports third-party payment providers like Fiserv, contract-based pricing, PDF rendering, and Excel exports. It accommodates unique payment rules for different partners.

Notification systems are in place for both transactional emails and real-time alerts, tailored for enterprise clients. The platform also offers session control, reporting modules, and remote diagnostics.

This is more than a consumer-facing product. It is a scalable control layer that brings together charging infrastructure, partner management, billing, and analytics in one cohesive ecosystem.

System architecture showing how the platform connects apps, charging, roaming, billing, and partner management.

Solution we delivered

Ontdekking & planning

We started by taking a step back and looking at the whole system. What was holding it back? What features were drivers and operators actually asking for? Where did things break down when usage spiked?

Working closely with the client’s product and business teams, we identified three key pain points that needed immediate attention:

  • Drivers couldn’t use cards across networks
  • Inefficient energy management
  • Hard to extract reliable data

Instead of trying to fix everything at once, we broke the work into manageable phases. First, we focused on making the existing system more stable and reliable. Then, we built the foundation needed to scale up: better APIs, cleaner integrations, and tools that the operations team could actually use day-to-day.

Platform redesign

Once we understood the core problems, we broke the codebase into smaller, independent modules so new features could be added without breaking existing ones. Across the system, our experts built a caching layer that cut latency and improved response times.

For partner integrations, we introduced standardized API interfaces and automated large parts of the workflow. What used to take weeks of custom coding now takes days of setup. We also added strict validation and error checks so the data coming from charging stations stayed accurate and usable.

On the infrastructure side, we reconfigured the platform for horizontal scaling. It now absorbs heavy traffic without slowing down, giving the client a system that grows as fast as their network.

EV charging platform admin dashboard displaying charging session history, charger availability, remote controls, and troubleshooting tools.

Key functionality delivered

Charging station control

With the platform foundation in place, we could tackle the first major challenge: station management. The client’s network was expanding rapidly. Some stations were their own, others belonged to partners, but the system couldn’t talk to all of them consistently. We fixed this by implementing full support for OCPP 1.6, the industry standard protocol that most EV chargers use.

This gave the operations team complete remote control over their network. They could start and stop charging sessions, watch what was happening in real-time, and run diagnostics on any station from one dashboard. When new hardware partners came on board, there was no need for custom workarounds. Just plug it in, configure it, and it works.

eRoaming across charging networks

The next challenge was much bigger: enabling drivers to charge at stations outside the client’s network. For drivers, charging should be simple — plug in and it just works. But underneath, it’s a tangled web of contracts, protocols, and data swaps between companies. We solved this by plugging into Hubject, Europe’s biggest EV eRoaming network. We implemented both OCPI and OICP to handle cross-network authorization, live station updates, and usage tracking. This means drivers can use third-party stations straight through the client’s app, without signing up for a dozen different accounts. The business doesn’t need to build charging infrastructure everywhere, they just connect to the networks that already exist through Hubject.

Smart charging

With drivers now able to access stations across multiple networks, we turned our attention to a growing concern: energy management. Electricity demand fluctuates constantly, and nobody wants to overload the grid. The client needed a way to help station operators stay ahead of peak demand periods.

We built a smart charging system that gives operators control over how and when energy gets delivered. They can set usage limits during peak hours, sync with grid availability, or let the system automatically optimize delivery based on real-time conditions. This protects the electrical grid, keeps operating costs down, and gives energy companies more confidence in the long-term sustainability of EV charging.

We also added time-limited charging for corporate clients, so that companies can now set session limits like 30 minutes to keep their fleet charging fair and efficient.

Session data export

All these new features and expanded network capabilities meant exponentially more data flowing through the system. Unfortunately, the old export system couldn’t keep up. It was a constant source of frustration — anything over 10,000 records would crash, leaving teams with incomplete reports and hours of manual data hunting. Our team rebuilt the export system from the ground up. It now chews through multi-million-record datasets with full details — station IDs, user info, session timing, pricing, the works. Everything comes out in Excel-ready formats that you can immediately share with finance, legal, or business partners. And yeah, it’s fast, even when you’re pulling data from high-volume accounts.

Real-time analyse

Without live data, the client was always reacting to problems after they’d already affected customers. We built a live analytics system that tracks charging sessions as they happen.

The operations team now sees live metrics on energy consumption, session duration, and station health. When a charger goes offline or starts consuming unusual amounts of power, they get instant alerts and can intervene before it becomes a bigger problem. Everything feeds into a central dashboard, so decisions can be made quickly and service stays reliable.

Mobile app screen where EV drivers select a charging station by scanning a QR code or entering the station ID to start a session.
Quote icon

We knew from day one this wouldn’t be a plug-and-play type of project. The platform had so much potential, but it needed serious work under the hood. What made it special was the partnership — the client stayed open, involved, and laser-focused on the end goal. And our team showed up with everything they had. It was tough, but it was the kind of challenge we love. We’re proud of the outcome and even prouder of the people behind it.

Dmitry Nazarevich
Dmitry Nazarevich Chief Technology Officer

Delivery approach

We worked in weekly sprints with clear goals and fast feedback. Our team handled planning, testing, and deployment, while the client focused on feature priorities and business impact. This setup gave us the speed to move independently, with regular check-ins to align on trade-offs and unblock decisions quickly.

To reduce risk, we used staged rollouts, feature flags, and automated tests to catch issues before they hit production. Partner integrations and protocol changes were launched through controlled deployments, with real-time monitoring in place in case anything went sideways.

Nothing about this build was one-size-fits-all. eRoaming, billing, and partner logic each had their own complexity. The client trusted us to lead delivery and we made sure they always had visibility into what we were doing, why it mattered, and where they were needed.

Technologies used

Backend

Go, gRPC, GraphQL (gqlgen, magidoc), Gorilla/Mux, HTTP REST, excelize, testify, go-mock, Keycloak IAM

Frontend

TypeScript, Angular, PrimeNG, PrimeFlex, Bootstrap, Keycloak JS adapter, Karma

Databases

PostgreSQL, CockroachDB, MongoDB,ElasticSearch, OpenSearch

Besturingssystemen

Linux-based (inferred from deployment environment)

Webserver

Nginx

Protocollen

OCPP 1.6, OCPI, OICP, eRoaming & billing: Hubject, Fiserv, Hectronic

DevOps

Docker, Docker Compose, Helm (for K8s deployments), Kubernetes (k8s), Hetzner VPS, Helm charts, Kibana, OpenSearch Dashboard

Continue inzet

GitHub Actions

Containers & orchestration

Docker, Kubernetes

Revisiecontrolesystemen

Git, GitHub

Toezicht op de infrastructuur

Prometheus, Grafana, OpenTelemetry

QA & testen

Testify, go-mock, Karma (frontend)

Team

Pictogram 1
Back-End Ontwikkelaar
Pictogram 1
Front-End Ontwikkelaar
Pictogram 2
Projectbeheerders
Pictogram 1
Product Owner
Innowise team

Resultaat

Duur van het project
February - July 2025
  • The data export feature, once a painful bottleneck that collapsed under the weight of 10,000 records, now pulls millions without a fuss. Teams that used to split reports manually now get clean, ready-to-use data in seconds.
  • Search, which used to lag or fail, became lightning-fast. Queries return in under a second, ranked by relevance, giving teams real-time insights at their fingertips. System uptime went up, support requests went down, and the platform finally felt stable under pressure.
  • Partner onboarding, which used to involve custom code and weeks of back-and-forth, became a simple configuration task. Internal teams picked up the pace — delivery cycles shortened, bugs were caught earlier, and collaboration across teams got smoother.
  • The new architecture gave the business room to grow. With the right foundations in place, the client unlocked new markets, built stronger partnerships, and finally had a roadmap that could move forward — not just work around technical debt.

Inhoudsopgave

Become the next eMobility success story

    Contacteer ons

    Boek een gesprek of vul het onderstaande formulier in en we nemen contact met je op zodra we je aanvraag hebben verwerkt.

    Stuur ons een spraakbericht
    Documenten bijvoegen
    Bestand uploaden

    Je kunt 1 bestand van maximaal 2 MB bijvoegen. Geldige bestandsformaten: pdf, jpg, jpeg, png.

    Door op Verzenden te klikken, stemt u ermee in dat Innowise uw persoonsgegevens verwerkt volgens onze Privacybeleid om u van relevante informatie te voorzien. Door je telefoonnummer op te geven, ga je ermee akkoord dat we contact met je opnemen via telefoongesprekken, sms en messaging-apps. Bellen, berichten en datatarieven kunnen van toepassing zijn.

    U kunt ons ook uw verzoek sturen
    naar contact@innowise.com

    Wat gebeurt er nu?

    1

    Zodra we je aanvraag hebben ontvangen en verwerkt, nemen we contact met je op om de details van je projectbehoeften en tekenen we een NDA om vertrouwelijkheid te garanderen.

    2

    Na het bestuderen van uw wensen, behoeften en verwachtingen zal ons team een projectvoorstel opstellen met de omvang van het werk, de teamgrootte, de tijd en de geschatte kosten voorstel met de omvang van het werk, de grootte van het team, de tijd en de geschatte kosten.

    3

    We zullen een afspraak met je maken om het aanbod te bespreken en de details vast te leggen.

    4

    Tot slot tekenen we een contract en gaan we meteen aan de slag met je project.

    pijl