← Insights

May 1, 2026

Telemetry and IoT systems are state estimation problems first

Sensor software is not about collecting readings. It is about inferring trustworthy state from noisy, delayed reality.

Telemetry systems look straightforward from a distance. Sensors emit numbers. Software stores them. Dashboards draw charts.

In practice, that description misses the entire problem.

The real engineering task is state estimation. Sensors are incomplete observers of a moving system. They are noisy, delayed, missing, biased, or temporarily disconnected. The product has to infer operationally meaningful state anyway.

The classic control-and-estimation framing captures this well:

State Evolution

xt+1=f(xt,ut,wt)x_{t+1} = f(x_t, u_t, w_t)

Observation Model

yt=h(xt,vt)y_t = h(x_t, v_t)

x_t is the latent system state, u_t the control or input, w_t process noise, y_t the measurement, and v_t measurement noise. Even when the production software is not literally running a Kalman filter, the mindset is still useful: the reading is not the state.

That matters in industrial and city systems because sensed variables often interact. Air quality, water signals, soil measurements, machine telemetry, or fleet data each arrive with different timing and reliability characteristics. A clean product has to carry provenance and confidence, not just values.

One practical design principle follows naturally:

Confidence-Weighted Interpretation

IytConfidence(yt)Freshness(yt)I \approx y_t \cdot Confidence(y_t) \cdot Freshness(y_t)

I like this framing because it prevents false certainty. A fresh but noisy signal should be treated differently from a stale but historically reliable signal. A missing packet should not be mistaken for a stable condition. A flat line may mean inactivity, disconnection, or sensor failure. Those states are operationally different.

Telemetry mobile apps and sensor platforms also reinforce the importance of edge-to-cloud coordination. If ingestion, mobile display, alerting, and backend analytics each interpret the same signal differently, the system becomes internally inconsistent. The hardest bug class in these products is often semantic drift rather than code failure.

This is where architecture matters again. Strong schemas, explicit event contracts, calibration awareness, time-series discipline, and clean separation between raw data and inferred state all improve the quality of the product. They also make AI or ML layers far more useful later, because the model receives better-labeled reality.

I think many teams overinvest in visualization before they have solved meaning. The more durable order is the opposite:

  1. Define state clearly.
  2. Model measurement uncertainty.
  3. Preserve timing and provenance.
  4. Visualize after the semantics are trustworthy.

Sensor systems are scientific software whether we admit it or not. The best ones behave accordingly.