Open this lesson in your favourite AI. It'll walk you through the why, explain the demo, and quiz you on the try-it list.
MLOps is a team sport, and one of the most common causes of stalled ML projects is unclear ownership of the boundaries between roles. Data scientists build models, ML engineers productionize them, data engineers own the pipelines, and SREs/platform engineers keep them running — but the handoffs between these roles are exactly where systems break. In small teams one person wears all the hats, which is fine, but they still need to know which hat they're wearing for a given task. Understanding the roles isn't org-chart trivia; it's how you reason about who owns the data contract, who owns the eval gate, and who gets paged at 3am when latency spikes.
The demo maps each lifecycle stage to the role that typically owns it, surfacing the handoff points — model handoff to production, data-contract ownership, on-call — where most failures actually occur.
Use these three in order. Each builds on the one before.
In one paragraph, explain the main roles involved in running an ML system in production and what each does.
Walk me through how an ML project flows across roles — data scientist, ML engineer, data engineer, SRE — and where the handoffs typically break.
Given a 3-person team shipping an LLM product, help me allocate the MLOps responsibilities so nothing critical is unowned.
lifecycle = [
("frame problem & metrics", "Product + Data Scientist"),
("build data pipeline", "Data Engineer"),
("train & evaluate model", "Data Scientist"),
("productionize / serve", "ML Engineer"),
("deploy & monitor", "ML Engineer + SRE/Platform"),
("on-call / incidents", "SRE/Platform"),
]
handoffs = [(lifecycle[i][1], lifecycle[i+1][1])
for i in range(len(lifecycle)-1)
if lifecycle[i][1] != lifecycle[i+1][1]]
print("Risky handoffs (ownership changes hands):")
for a, b in handoffs:
print(f" {a} -> {b}")
# In a small team one person owns all stages — but must know WHICH role each task is.python3 main.py