
Summary
Charge Spy is an EV charging platform used by drivers across Ukraine, Europe and Central Asia. It covers the full journey in one place — finding a station, reserving it, charging, and paying.
I led design across the mobile app, the operator-facing web dashboard, and the design system that keeps both consistent.
Client:
Charge Spy — EV Charging Infrastructure
Service:
Web Dashboard, Mobile App, Design System
Date:
2026
The Challenge
EV drivers plan their day around charging. A station that turns out to be occupied, offline, or fitted with the wrong connector costs time nobody budgeted for — the real anxiety isn't range, it's arriving somewhere that doesn't work.
That made reliability a design problem, not just an infrastructure one. Station availability, power output and connector type arrive as a live stream that is never fully accurate, and it had to be presented clearly enough to be trusted at a glance — on a phone, often at the roadside, sometimes in a hurry.
The second constraint was distance. Every extra tap between opening the app and starting a charge is a tap taken standing next to a car.
The Solution
I designed a utility-first experience built around one measure: the time between opening the app and starting a charge.
Station discovery. Sorting and filtering by connector type, charging speed and availability, with the filters a driver actually changes surfaced first and the rest folded away. The map defaults to what's usable right now rather than to everything nearby.
Live session monitoring. A single view for an active charge — power draw, energy delivered, running cost, time remaining. Costs update as the session runs, so the price is never a surprise at the end.
Payments. Apple Pay, Google Pay and stored cards, so a first-time user can complete a charge without leaving the flow to set up an account.
Reservation. A 15-minute hold that guarantees the spot while the driver is en route.
Design system. The hard part wasn't the component library, it was station state. Available, occupied, offline, incompatible, unreported — each needed one consistent treatment across map pins, list rows, station detail and the operator dashboard, so the same signal reads the same way wherever a driver meets it. Defining those states once is what kept a live, imperfect data feed legible.

The Impact / Achievements
One flow across three regions. Station discovery and payment carry almost all of the traffic on the platform, and both now run on the same patterns regardless of market — connector standards and payment methods differ, the interface does not.
Fewer steps to a charge. The path from opening the app to starting a session holds only the steps that need a decision from the driver. Payment and identity drop out for anyone who has charged before, and the reservation hold removes the most common failure — arriving at a station already in use.
One system, two platforms. The mobile app and the operator dashboard are built from the same component library and tokens, so a change to a pattern ships to both instead of being redrawn twice.








