Work

Case Studies

Three systems I designed, built, and ran in production. Each one hit a different wall, normalizing messy field data, making evidence reviewable, getting past a runtime ceiling, and each write-up is honest about what I'd change. A few details are generalized where a client needs them to be.

Sensor Data Platform: Multi-Source Ingestion at 10M+ Points a Day

A microservice-based ingestion platform that normalizes MQTT, OPC-UA, and vendor protocol data into one shared sensor model, processing 10M+ observations a day.

How I split messy field protocols into adapter services around one normalized sensor model, so new sources scale without changing the core.

10M+ observations/day · multiple field protocols · adapter-based scaling

PythonTimescaleDBMQTTOPC-UA

Bus-Lane Enforcement: WebRTC Streams to ML Evidence Pipeline

Violation detection from cameras on moving buses: WebRTC video, ONNX inference, H3 geospatial matching, and evidence handling built for a formal review workflow.

Moving cameras, cheap checks gating expensive ML to hold the budget, and evidence built for a formal review workflow.

50 concurrent streams in pilot · 600-bus design target · multi-model inference pipeline

WebRTCONNX RuntimeH3Python/Rust

Python to Rust: A UDP Ingestion Server That Hit the GIL

An async UDP ingestion server built in Python, then rewritten in Rust when CPU-bound parsing and validation needed a multi-core runtime. Same architecture, new concurrency substrate.

Why I rewrote a Python service in Rust, what I can actually prove about the win, and what I only modeled.

one core to all cores · ~72% less heap traffic / msg · ~1000 concurrent devices

RustTokioUDPJSON Schema