Seven problems, scoped and shipped.
MaintenancePilot
Live API · production ML · 2026
The problem
Compressor maintenance runs on a calendar, so operators either service equipment that was fine
or discover the failure when the line stops. On a metro fleet that is a service outage,
not a maintenance ticket.
How I scoped it
The modelling question was easy to get wrong. A missed failure and a false alarm are not equally
bad, so the threshold is set by what each actually costs, and evaluation runs on time-ordered
splits because random ones let the model see the future.
What it does differently
Catches 99.5% of failures with the alert threshold set by what a miss actually costs
rather than a default. Trained on 1.5 million rows of real compressor telemetry across four documented failures.
The failure signature turned out to be behavioural, not a threshold breach: the compressor stops
cycling and begins running continuously, hours before anything reads as out of range.
Deployed as a live API with automated drift monitoring that fails the build rather than
filing a report, because a maintenance model degrading silently is worse than none.
LightGBM · Optuna · MLflow · FastAPI · Docker · Evidently · GCP Cloud Run