Lead Software Engineer · Athens
The interesting problems start at scale.
Lead software engineer in Athens building data-heavy backend systems: high-throughput ingestion, real-time processing, and the infrastructure that keeps them reliable. I favor small services with clear responsibilities, and reach for Rust when a hot path needs tighter control.
Selected work
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.
Streaming ingestion for industrial sensor fleets at 10M+ points a day. One normalized model at the core, so new hardware is one new adapter and nothing else moves.
10M+ observations/day · multiple field protocols · adapter-based scaling
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.
Real-time video and ML from moving buses. Cheap geospatial checks gate the expensive models, which is what keeps the concurrency budget intact.
50 concurrent streams in pilot · 600-bus design target · multi-model inference pipeline
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.
A Python ingestion service that hit the GIL, rewritten in Rust so CPU-bound parsing and validation could use a multi-core runtime. Same simple design, clearer limits, with the honest caveat that the memory win is allocation analysis, not a benchmark.
one core to all cores · ~72% less heap traffic / msg · ~1000 concurrent devices
Now
Leading platform architecture at WINGS ICT Solutions, building and operating production data systems for utilities, municipalities, and industrial clients.