Truck fleet software

Volkswagen Digital Solutions

Volkswagen Digital Solutions is the Volkswagen Group's digital division. I worked on its truck-management platform, where trucks receive firmware updates over the air. The fleet dashboard shows how those updates are going across the fleet.

My work

I built the dashboard view that tracks over-the-air updates in real time. I also brought the dashboard's REST and GraphQL data fetching into one layer, and introduced unit and end-to-end tests for its most complex UI flows. I did this within the platform's existing architecture, as part of a wider team.

How the pieces fit together

A MAN truck on the road and a fleet manager checking a tablet, from the MAN Now article on the Volkswagen Group Digital Solutions site
Trucks in the fleetReceive firmware
Over-the-air updatesFirmware delivery
Fleet dashboardUpdate tracking

Technology stack

Pick a technology to see what I used it for.

What I worked on

The tracking view is what the team managing the fleet looks at. The data layer and the tests sit behind it and kept the dashboard dependable as it changed.

Following updates as they happen

Trucks across the fleet receive firmware updates over the air, and the team managing the fleet needed to see how each rollout was going. I built the dashboard view that tracks those updates in real time.

Update progress became visible in one place, as it happened.

What the view had to handle

Each truck picks up an update at its own moment, so the view keeps changing after the page has loaded. I built the React view to show that changing state as new status came in.

One way to fetch dashboard data

The dashboard pulled data from both REST and GraphQL services. I unified that fetching behind one layer, so components asked for data the same way whatever the source.

It reduced payload size and improved frontend performance.

Why one layer

The REST services stayed as they were. The layer hid the difference from the components, which made the dashboard easier to work on.

Tests for the complex UI flows

Some of the dashboard's UI flows were complex enough that a change in one place could break another. I introduced Jest and Cypress unit and end-to-end coverage for those flows.

The tests helped prevent critical regressions in later releases.

How I split the tests

Jest covered components and logic on their own. Cypress ran the full flows in a browser, the way a person would use them.