Foundations
The ML lifecycle
Traditional software is deterministic — the same input gives the same output forever. ML systems decay even when the code never changes, because the world they model keeps moving.
The single most important framing for the whole MLOps round: an ML system is code plus data plus a model, and all three drift. In traditional software, you write logic, test it, ship it, and it behaves identically until you change it. An ML model is different — its behavior is learned from a snapshot of data, and the moment that snapshot stops matching reality, the model gets quietly worse without anyone touching a line of code. This is why "it passed all the tests at deploy" means much less for ML than it does for a backend service.
The lifecycle is also a loop, not a line. You don't ship a model and walk away; you ship it, watch it, and feed what you learn back into the next training run. Interviewers love to see candidates describe this loop explicitly — problem framing, data collection, training, evaluation, deployment, monitoring, and back to retraining — because it shows you understand that the work doesn't end at deployment. It begins there.
What changes vs traditional software
Behavior is learned, not written
You can't read the source and predict the output. Behavior depends on training data you may not fully control — so testing means validating data and predictions, not just code paths.
It decays on its own
A frozen model loses accuracy as the input distribution shifts. "No code changed" is not a guarantee of correctness. Performance is a moving target.
Three things to version
Code, data, and model artifacts must all be versioned together to reproduce a result. Versioning code alone — the default in software — is not enough.
INTERVIEW SIGNAL
When asked "how is deploying an ML model different from deploying a service?", the answer interviewers want is the data dependency and the decay: the model's correctness is tied to a data distribution that drifts, so deployment is the start of an ongoing monitoring-and-retraining loop, not the end of the project. Candidates who treat a model like a static binary are the ones who get marked down.