The aim was simple: any number in production should trace back to the run that produced it. Here is how the shipped pipeline differs from what came before it.


Found that deployment mostly meant a local script, run manually, with no record of what data trained the live model.
Before touching training or serving, made sure every dataset change was tracked. The rest of the pipeline is only as trustworthy as this layer.
Every run’s parameters and metrics started being logged automatically instead of living in someone’s notes.
Both steps moved into Docker, so “it works on my machine” stopped being a deployment strategy.
Waited until there was something real in production worth monitoring, rather than building dashboards for models that didn’t exist yet.
Early alerts fired on normal seasonal shifts. Collecting enough history to tell the two apart came before trusting alerts unsupervised.
