← All work

Self-healing MLOps platform June — August 2026

Demand Forecasting Platform

A demand-forecasting platform that looks after itself: it predicts demand across 108 retail time series, watches its own drift, and retrains and redeploys without anyone stepping in. Then I broke it on purpose to prove the loop works.

Type
Independent project
Timeline
June — August 2026
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 autonomously
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. The interesting engineering problem isn't the model; it's the loop around it.

What I built

  • Forecasting: LightGBM models over 108 retail time series, cutting WMAPE 46% against a Prophet baseline.
  • Drift monitoring: the platform watches its own inputs and errors and decides for itself when it's drifted.
  • Automatic retraining and promotion: drift triggers retraining; a model-registry gate (MLflow) only promotes the retrained model once it beats production; then it redeploys.
  • Reproducibility: DVC for data and pipeline versioning.

Proving the loop

To prove the self-healing claim end to end, I simulated a demand shock. Drift monitoring caught it, retraining kicked off, the registry gate promoted the retrained model once it beat production, and accuracy improved 71% (WMAPE). Nobody touched it.

Built for production

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.

In short

  • Full MLOps lifecycle: training, serving, monitoring, retraining, promotion, rollback.
  • Tested the failure mode instead of assuming it away.
  • Production habits: containers, CI/CD, tests, health checks.