Meter readings at national scale
The problem
An energy business takes in readings from metering devices in the field, continuously and at national scale. They arrive in whatever shape the source produces: loosely structured, several kinds of measurement mixed into one payload, and full of holes — a device that was offline, a network that dropped, a batch that turned up twice.
What I built
A single parse step turns each payload into typed streams — energy, power, voltage, peaks — so everything downstream works against a known shape instead of guessing at one. Missing intervals are interpolated against the meter's own history. The streams are rolled up as they pass: per day, per week, per month.
A separate branch watches for the two things a person actually needs to know about: a meter that has gone quiet for longer than its interval allows, and a reading that cannot be true.
What changed
The business stopped reasoning about files and started reasoning about readings. Aggregates that had been the output of an overnight job became continuous, and a meter going dark became something noticed in hours rather than at the end of a billing period.
- RoleConsultant, hands-on
- StackJava · Spring · Kafka
- ShapeStreaming ingest · interpolation · rollups · alerting