← All work

Self-healing MLOps platform June – August 2026

Demand Forecasting Platform

This platform forecasts demand for 108 retail time series, notices when its accuracy drifts, and retrains and redeploys without anyone touching it. To check the loop really works, I broke it on purpose.

Type
Independent project
Timeline
June – August 2026
Source
Open source Code on GitHub.
Stack
Python, LightGBM, MLflow, DVC, FastAPI, Docker, GitHub Actions
Links
−46%forecast error (WMAPE) vs. a Prophet baseline
+71%accuracy after a simulated demand shock, recovered on its own
108retail time series
206automated tests in CI/CD

The problem

Forecasting models go stale. Demand shifts, the data drifts, and a model that was accurate at deploy time quietly gets worse until someone notices and retrains it by hand. I was more interested in the loop around the model than in the model itself.

What I built

The forecasts come from LightGBM models over 108 retail time series, with 46% lower WMAPE than a Prophet baseline. The platform watches its own inputs and errors and decides when it has drifted.

Drift kicks off retraining. An MLflow model-registry gate only promotes the new model if it beats the one in production, and then the platform redeploys. DVC versions the data and the pipeline so any run can be reproduced.

Proving the loop

To test it, I simulated a demand shock. Drift monitoring caught it, retraining started, the registry gate promoted the new model once it beat production, and accuracy improved 71% (WMAPE). I didn’t step in at any point.

Serving and deploys

A Dockerized FastAPI service serves probabilistic forecasts. GitHub Actions runs CI/CD with 206 automated tests, post-deploy health checks, and automatic rollback if a deploy goes wrong.