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/daymultiple field protocolsadapter-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 pilot600-bus design targetmulti-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