Dean Shabi
All work

Renewcast · 2025

One model contract, so every forecast ships the same way

Forecasting work had spread across solar, wind and pricing, and the tooling grew one model at a time. We rebuilt the path from notebook to production around a model contract, MLflow packaging and a challenger-versus-champion loop.

Role
Platform R&D
Stack
Python, MLflow, Kubernetes, CI/CD
Server racks with bundled cables and green status lights in a dim data centre

How it works

  1. 1

    Model contract

  2. 2

    MLflow package

  3. 3

    Challenger

    registered with metadata

  4. 4

    Side-by-side test

    same data, same pipeline

  5. 5

    Champion swap

Every model carries its contract inside the artifact, so the same pipeline can test, compare and serve any of them.

Results

Before and after the rebuild

Deploy prep fell from 4 to 5 days to under one, and the team tested three times as many challengers a week.

  • Before
  • After

Deploy prep

4-5 days
under 1 day

Challengers per week

1×
3×

Six weeks from concept to rollout.

Past models stay reproducible, solar and wind moved into one repository, and the roadmap opened up to physics integrations, nowcasting and ensembles.

Key decisions

  1. 01

    Put the contract inside the model

    The contract says what every model takes in, what it returns and what it needs to run. It ships inside the model, so a mismatch shows up the moment a pipeline loads it.

  2. 02

    One package format for everything

    Every model is packaged the same way with MLflow. Experiments, tests and production all run the exact same package.

  3. 03

    Make challengers earn the slot

    A new model registers as a challenger and runs on the same data slices as the production champion. It replaces the champion only after winning for several weeks.

  4. 04

    Make releases boring

    Shipping a model or rolling one back became a one-line change instead of a deployment project.

Have a machine learning system that has to hold up in production? I'd like to hear about it.