Notes from the field
From a wall of gauges to a decision a junior engineer can act on
A water-resources programme drowning in telemetry, and the decision spine that turned thousands of incompatible sensors into one clear next step.
- Water
- IoT
- Public Sector
- Decision Intelligence
Water utilities and irrigation departments have spent a decade installing sensors — level gauges, flow meters, pump telemetry, water quality probes. The data arrives. What’s usually missing is the part that matters: a decision.
What we walked into
Thousands of field devices, several incompatible protocols, and a data lake that told you what happened but never what to do. The people who most needed answers — a junior engineer at a sub-division at 2 a.m. — were the least equipped to read a wall of charts. And the telemetry was sovereign public data; it couldn’t be shipped to someone else’s analytics cloud.
What we did
-
Devices
mixed protocols
-
Universal ingest
oneM2M / MQTT
-
One timeseries model
normalised
-
Decision layer
thresholds, anomalies
-
Control room
recommended action
We built a universal ingestion layer that normalises any device — regardless of protocol — into a single timeseries model, so onboarding a new device type is configuration, not a code change. On top sat a decision-intelligence layer that answers “what should we do?”: thresholds, anomaly detection, and recommended interventions, with the raw telemetry always one click underneath for anyone who wants to verify. Observability was designed as a control room, not a dashboard gallery.
What made it work
- Universal connector — one integration surface for a heterogeneous fleet.
- Normalised timeseries — every device speaks one schema downstream.
- Prescriptive layer — recommendations, not just readings.
- Verifiable — the underlying data is one click away from any recommendation.
- Self-hosted — the state’s data never leaves the state’s infrastructure.
Why we built it this way
Device heterogeneity is permanent in public infrastructure — vendors change every procurement cycle — so normalisation at the edge is what keeps the system from fragmenting. The expertise gap at the last mile is why we optimised for “what to do” over “what happened”. Sovereignty is mandatory for public data, so the whole stack is open and on-prem. And because it often runs without a cloud’s safety net, reliability and observability are built in from the first commit, not bolted on after the first flood.
Building something like this?
We'd rather talk specifics than slogans. Tell us what you're trying to build.
Talk to us