Internship assignment · PlanetPod

FleetMonitor

Catch a failing battery before the customer ever notices.

PlanetPod builds smart home batteries. One of my assignments: give customer support a way to see the whole fleet at a glance, which pods are healthy, which are in an error state, and which just threw a fatal error. So we could reach out before someone sat in the cold.

2025 Internship Grafana Data / backend
interactive recreation · made-up data, not the real dashboard

The assignment

Stop chasing faults. Get ahead of them.

Support used to hear about a problem when the customer called. By then the battery had already been down for hours. I built two Grafana dashboards on top of the device telemetry so the team could spot trouble first: one fleet-wide view to triage, and one deep-dive to debug a single pod.

🗺️

See everything

Every pod in the country on one map, coloured by health.

📞

Reach out first

A triage queue so support contacts the customer before they notice.

🔬

Debug fast

Per-pod sensor history and an error log to find the root cause.

Dashboard 1 · Fleet overview

The whole fleet, one screen.

A map of the Netherlands with a dot per pod: green is healthy, yellow a minor error, red a fatal one, grey is offline. Counters tally each state up top, and a queue lists the worst pods first so support can work top-to-bottom: link the pod to its customer and call them.

functional minor error fatal error offline
recreation · illustrative data

Dashboard 2 · Pod detail

One pod, every signal

Pick a pod by id and the whole story opens up: a live error log, the pack power flowing in and out, and a wall of sensor graphs: voltages, currents, cell temperatures, inverter heat, grid frequency. Everything you need to debug without ever touching the real unit.

error log9+ sensorslive tailtime-series
recreation · illustrative data

Under the hood

Real telemetry, made readable.

The pods stream a lot of sensor data; my job was turning that firehose into panels a human can read in two seconds. I designed the layout, wrote the queries and picked the visualisations that actually helped support: colour-coding by severity, sorting by urgency, and keeping the noise out.

GrafanaSQLTime-series dataDashboard designAlerting

Note: the original dashboards are internal to PlanetPod and run on live customer data. What you see here is a faithful recreation I rebuilt from memory with made-up sample data. No real customer or device data is shown.

contextInternship
year2025
companyPlanetPod
my roleDashboards + queries
usersSupport team

Want to click around?