← All writing
Careers · 5 min read · 1 Aug 2026

What a Machine Learning Engineer's Week Actually Looks Like

Less model glamour, more data plumbing, evaluation arguments, and quietly stopping things from breaking.

Cover image for the article: What a Machine Learning Engineer's Week Actually Looks Like

The picture in your head is wrong, and that's fine

When people imagine a machine learning engineer's week, they picture something like a montage: stare at a whiteboard, sketch an architecture, train a model overnight, wake up to a beautiful accuracy curve, ship it. I understand why that image persists. Papers and course projects are structured that way because the data is already clean, the labels are already correct, and the task is already well posed. Real work rarely arrives in that state.

What actually fills most weeks is unglamorous but consequential: understanding what a dataset really contains, deciding how to measure success honestly, watching a model behave strangely in production, and explaining to a non-technical stakeholder why 94% accuracy might mean almost nothing. None of this shows up in a tutorial, yet it is where most of the actual skill and most of the actual risk lives.

I think this gap between perception and reality matters because it shapes how people prepare for the job and how they judge their own progress. If you think the job is mostly modelling, you will spend your energy learning architectures and feel like you are falling behind when you spend three days on a data leakage bug instead. If you understand the real shape of the work, that same three days feels like exactly what the job is.

A worked week: what actually gets done

Take a concrete, plausible week. On Monday you inherit a dataset for a churn prediction problem: a few hundred thousand customer records, a binary label, and a deadline in three weeks. The first two days are not spent training anything. They are spent on questions like: is the label computed at a point in time that respects what would have been known at prediction time, or has it leaked information from the future? If churn is labelled using a column updated after the customer already left, any model trained on it will look excellent in testing and collapse in production, because that future information will not exist at inference time.

Say you find that a 'last contact date' field is populated only for customers who eventually churned. That single column, if left in, would let a simple model hit something like 97% accuracy on held-out data while being completely useless once deployed, because at prediction time that field is empty for everyone. Catching this before Wednesday saves weeks later. This is the kind of bug that never appears in a textbook dataset but appears constantly in real ones.

By Wednesday you might be building a baseline: logistic regression or a small gradient-boosted tree, nothing exotic, with a simple time-based split rather than a random shuffle, since customers observed later should never leak into training folds for customers observed earlier. That baseline gets you a number you can trust, say an AUC of 0.78, and it becomes the thing every fancier model must beat by a meaningful margin, not a rounding error.

Thursday and Friday often go to evaluation design rather than modelling itself: deciding whether the business actually cares about overall accuracy or specifically about catching the top 10% highest-risk customers, because a marketing team with limited budget for retention calls cares about precision within that top slice far more than about the metric that looks good in a slide. Writing that evaluation code, and defending it in a meeting where someone asks why the number isn't just 'accuracy', is genuinely half the job.

laptop with data dashboard

Monitoring, drift, and the work that never ends

Once something is deployed, the week doesn't get quieter, it changes shape. A model that performed well at launch can degrade for reasons that have nothing to do with the model itself. Customer behaviour shifts, a marketing campaign changes the mix of people entering the pipeline, or an upstream team silently changes how a feature is calculated. This is called drift, and detecting it is a recurring weekly task rather than a one-off setup.

Concretely, this might look like a dashboard showing that the distribution of a key input feature, say average monthly spend, has shifted from a median of £45 to £60 over two months, without anyone deciding that on purpose. Nothing crashed. No error was thrown. The model is still producing predictions, but it's now extrapolating on a population it was never really trained on, and its calibration is quietly getting worse. Noticing this before a stakeholder does is a large part of the job's day-to-day value, and it usually takes the form of routine checks rather than dramatic firefighting.

There is also a steady stream of smaller reproducibility tasks: making sure the exact preprocessing steps used in training match what runs at inference time, pinning package versions so a retrain next quarter doesn't silently change behaviour, and documenting why a particular threshold was chosen so the next person, possibly future you, doesn't have to reverse-engineer the decision from scratch. This work is invisible when done well and expensive when skipped.

The practical takeaway

If I had to compress a typical week into one idea, it's this: model training is a small, bounded task inside a much larger job of making sure the numbers you trust are actually trustworthy. The interesting failures are almost never 'the model wasn't sophisticated enough'; they're leakage, mismatched evaluation, silent drift, or a metric that doesn't reflect what anyone actually cares about.

For anyone preparing for this kind of role, the useful habit isn't memorising more architectures. It's practising leakage-aware splitting, building baselines before anything fancy, and writing evaluation code you could defend to a sceptical colleague. That's the skillset that actually gets exercised, week after week.

office whiteboard meeting
← All writing See the project case studies →