Data Science vs Data Engineering vs ML Engineering vs Analytics
Four job titles that get confused constantly — what each one actually owns day to day, where the boundaries blur in practice, and how to decode a job posting
// Part 01
Why These Four Titles Get Confused
Open ten job postings for "Data Scientist" at ten different companies and you will find ten different jobs. One wants heavy SQL and dashboards. Another wants a PhD and published research. A third wants someone who can deploy a model to production single-handedly. This is not because the title is meaningless — it is because these four disciplines sit on a shared spectrum, and different companies draw the boundaries in different places depending on team size and maturity.
At a large, mature tech company, all four roles usually exist as separate people. At a 20-person startup, one person might do all four in the same week. Understanding the boundaries — even ones that blur in practice — is what lets you read a job posting accurately, negotiate scope in an interview, and know exactly who to loop in when a project needs a skill outside your own lane.
Read left to right, this is roughly the order data flows through a company: engineers move and store it, analysts and scientists make sense of it, and ML engineers turn a scientist's model into something running live in production. The rest of this module walks through each stop on that chain.
// Part 02
Data Engineer — Builds the Pipes
A Data Engineer's job is to make sure data exists, arrives on time, and is trustworthy — before anyone else touches it. They rarely answer business questions directly; they build and maintain the infrastructure that makes answering those questions possible for everyone downstream.
- Building and maintaining a nightly pipeline that loads watch_history events into the warehouse
- Fixing a broken pipeline when an upstream API changed its response format overnight
- Designing the subscriptions table schema so it scales to millions of rows without slow queries
- Setting up data quality alerts that fire automatically if row counts drop unexpectedly
The output of good data engineering work is invisible when it works — a warehouse table that just quietly refreshes every night, correctly, forever. This course's sibling Data Engineering track covers this discipline in full depth; here, treat it as the team whose work you depend on before Stage 2 (Collect) of the workflow from Module 02 can even begin.
// Part 03
Data Analyst — Reads What Already Happened
A Data Analyst answers business questions using data that a data engineer has already made clean, structured, and queryable. Their core tool is SQL, their core output is a dashboard or a report, and their core question is almost always "what happened?" rather than "what will happen next?"
- Writing a SQL query for the weekly leadership report on new subscriber counts by country
- Building a dashboard tracking cancellation rate by plan, refreshed automatically every morning
- Answering an ad hoc Slack question: "how many Premium subscribers watched a Documentary last month?"
- Presenting last quarter's engagement trends to the marketing team
The line between Data Analyst and Data Scientist is the blurriest of the four — many "Data Scientist" job postings, especially at smaller companies, are describing analyst work. The clearest test: does the role ever require cleaning genuinely messy raw data or building a predictive model? If the data always arrives clean and the deliverable is always a report or dashboard, it is analytics — regardless of the title on the job posting.
// Part 04
Data Scientist — Cleans, Validates, Sometimes Predicts
This is the role this course is built around, covered in full in Module 01. The short version: a Data Scientist takes messy, often raw data, cleans it, applies statistical rigor to determine whether a pattern is meaningful, and — when the question genuinely calls for it — builds a predictive model.
- Cleaning a raw watch_history export full of duplicate events and inconsistent device names
- Running a statistical test to check whether a pricing change actually caused a real drop in retention
- Training and validating a churn prediction model, then handing it to an ML Engineer to deploy
- Designing a controlled A/B test for a new recommendation algorithm before it ships to everyone
The distinguishing skill set, relative to an analyst, is statistics and — when needed — machine learning. The distinguishing skill set, relative to an ML Engineer, is that a data scientist's job usually ends once a model is proven to work; making it run reliably at scale in production is a different, adjacent discipline.
// Part 05
ML Engineer — Ships the Model
An ML Engineer takes a model that a data scientist has proven works — usually as a notebook or a script that runs once — and turns it into a reliable, fast, monitored piece of production software that serves predictions continuously, at whatever scale the product needs.
- Wrapping a data scientist's churn model in an API that returns a prediction in under 100 milliseconds
- Setting up monitoring that alerts the team if the model's accuracy silently degrades over time
- Automating a retraining pipeline so the model updates itself on fresh data every week
- Optimizing a model so it runs cheaply enough to serve millions of predictions per day
This role sits closer to software engineering than to statistics — strong Python and systems skills matter more here than deep statistical theory. This course's sibling AI & ML track covers the MLOps and deployment side of this role in depth.
// Part 06
The Same Question, Answered Four Different Ways
The cleanest way to see the real difference is to watch all four roles respond to the exact same business trigger: "Premium subscriber cancellations went up this month."
| Role | Their response to this exact trigger |
|---|---|
| Data Engineer | Confirms the subscriptions table refreshed correctly overnight and the cancellation numbers are not a pipeline bug before anyone trusts them. |
| Data Analyst | Builds a dashboard tile showing cancellation rate by month, filterable by plan and country, so leadership can watch the trend going forward. |
| Data Scientist | Cleans the subscription and referral data, runs a statistical test to check if the increase is real, and identifies which segment is actually driving it. |
| ML Engineer | If a churn prediction model already exists, checks whether it correctly flagged these cancelling users in advance — and improves it if not. |
Notice all four are looking at overlapping data, but asking fundamentally different questions of it. Here is the analyst-style answer and the data-scientist-style answer to the same trigger, live, so you can see the actual difference in code rather than just in description.
The analyst's query answers "how many cancelled, per plan" — a real, useful, complete answer to a descriptive question. The data scientist's version normalizes by group size to ask the sharper question "which plan has the highest cancellation rate, not just count" — the kind of reframing that prevents a misleading conclusion (a plan with more total subscribers will always have more raw cancellations, even with a lower rate).
// Part 07
How to Decode a Job Posting
Job titles lie constantly. Job posting bullet points are more honest. Use this quick decoder before an interview.
"Build and maintain ETL pipelines"
→ Data Engineer"Own our weekly business reporting"
→ Data Analyst"Design and validate A/B tests"
→ Data Scientist"Deploy models to production, own uptime/SLAs"
→ ML Engineer"Strong SQL, dashboarding tools (Looker/Tableau)"
→ Data Analyst"Statistics, experimentation, causal inference"
→ Data Scientist"Airflow, Spark, warehouse architecture"
→ Data Engineer"MLflow, model monitoring, feature stores"
→ ML Engineer// Part 08
What This Looks Like at Work — One Feature, Four Roles
StreamPulse decides to build a churn-prevention feature: automatically offer a discount to subscribers likely to cancel. Here is how all four roles touch the same project across one week.
🎯 Pro Tip
In an interview, if you can describe not just your own role's contribution but how it fits into this chain — what you depend on and who depends on you — you signal seniority far beyond your actual years of experience. Junior candidates describe their own task. Senior candidates describe the system.
// Part 09
Interview Prep — 5 Questions With Complete Answers
A Data Analyst is like someone who reads a company's existing, well-organized filing cabinet and answers questions about what is already in it — "how many customers did we get last month?" A Data Scientist is more like someone who first has to sort through a messy pile of unfiled papers, figure out what is trustworthy, and then sometimes builds a system that predicts what will happen next based on the patterns found.
The practical difference is in the starting point and the ceiling of the work: analysts typically start from clean, already-modeled data and their output is usually a report or dashboard. Data scientists more often start from messier, less-processed data, apply statistical rigor to validate what they find, and occasionally go all the way to building a predictive model — something an analyst role typically does not require.
In practice at many companies, especially smaller ones, one person does both jobs under one title — which is exactly why this distinction matters more for understanding a specific job posting's actual day-to-day than for judging whose job is "better."
I would treat it as useful information rather than a betrayal — many companies use "Data Scientist" loosely, and the actual day-to-day work is the ground truth, not the title on the offer letter. My first step would be a direct conversation with my manager about the mismatch, framed around what I want to grow into rather than a complaint about what I am currently doing.
I would look for openings to introduce more analysis-heavy or modeling work incrementally — for example, adding a simple statistical significance check to an existing dashboard metric, or proposing a small predictive project adjacent to my current dashboard work — to demonstrate the additional value without requesting a full role change upfront.
If after a genuine attempt the role's scope does not evolve and it matters to my career goals, I would treat that as useful signal about whether this company's structure fits where I want to grow, and factor it into future job search decisions rather than staying frustrated indefinitely.
An ML Engineer needs strong software engineering fundamentals that go well beyond what most data scientist roles require: writing production-grade code with proper testing, designing APIs, understanding latency and throughput trade-offs, containerization (Docker/Kubernetes), and CI/CD pipelines for deploying model updates safely.
They also need monitoring and observability skills specific to ML systems — detecting model drift (when real-world data starts to differ from training data), setting up alerting for degraded prediction accuracy, and building automated retraining pipelines. These are systems engineering concerns that a data scientist focused on proving a model works in a notebook typically has not needed to master.
Conversely, a Data Scientist typically needs deeper statistical theory, experimental design, and domain-specific feature engineering judgment than most ML Engineers develop — the two roles are complementary specializations rather than one being a strictly harder version of the other.
The signal is whether the project needs data infrastructure to exist or scale, rather than just an ad hoc pull for one analysis. If a question can be answered with a one-time query against existing warehouse tables, no data engineering involvement is needed. If the project requires a new, recurring, reliable data pipeline — for example, a nightly feed of a new event type that does not yet exist in the warehouse — that is squarely data engineering work.
A useful test: would this data need to exist and refresh correctly even if I, the data scientist, were on vacation next month? If yes, it needs to be a proper, engineered pipeline rather than a personal script running on my own laptop.
In practice, I loop in a data engineer as early as the framing stage of a project if I already suspect the answer will require new or restructured data infrastructure, rather than building a fragile personal workaround and discovering the need for a real pipeline only after the analysis is already trusted and in use.
A common blurry case: a data scientist builds a churn model that works well in a notebook, and the team is small enough that there is no dedicated ML Engineer. The data scientist is then asked to also deploy it — stepping into ML Engineer territory. The ambiguity is real: how much production engineering rigor is reasonable to expect from someone whose core strength is statistics and modeling, not systems design?
I would handle this by being explicit about scope and risk rather than silently absorbing the extra work: propose the simplest reliable deployment path (for example, a scheduled batch job rather than a low-latency live API, if the use case allows it), be honest about what monitoring and testing I can realistically build alone, and flag clearly if the production reliability bar genuinely requires bringing in engineering support before it ships to real users.
The principle that generalizes: role boundaries blur constantly in practice, especially at smaller companies, and the professional response is transparent communication about what you can competently own — not silently pretending the ambiguity does not exist.
// Part 10
Career Misconceptions You Will Hit
🎯 Key Takeaways
- ✓Data Engineer, Data Analyst, Data Scientist, and ML Engineer sit on one spectrum from moving raw data to shipping a live model — at small companies one person often covers all four; at large companies they are separate teams.
- ✓Data Engineers build and maintain the pipelines everyone else depends on. Their output is invisible when it works — a table that refreshes correctly, every night, without anyone noticing.
- ✓Data Analysts answer "what happened?" using already-clean data, mainly through SQL and dashboards. This is the blurriest boundary with Data Science — many "Data Scientist" postings are really describing this role.
- ✓Data Scientists clean messier data, apply statistical rigor to validate patterns, and sometimes build predictive models — the discipline this entire course is built around.
- ✓ML Engineers take a data scientist's proven model and turn it into reliable, monitored, production software — a role closer to software engineering than to statistics.
- ✓The same business trigger gets four genuinely different responses from each role — seeing this side by side is the clearest way to understand the actual difference, more than any definition.
- ✓Job postings are more honest than job titles. Decode the actual bullet points (SQL/dashboards → analyst; statistics/experimentation → data scientist; Airflow/Spark → data engineer; MLflow/deployment → ML engineer) rather than trusting the title alone.
- ✓Being able to describe how your work fits into the full chain — what you depend on and who depends on you — signals seniority far beyond years of experience in an interview.
- ✓A model that works once in a notebook is a proof of concept, not a finished deliverable — deployment and monitoring is typically as much work as building it.
- ✓Role boundaries blur constantly in practice, especially at smaller companies. The professional response is transparent communication about what you can competently own, not silently absorbing scope you are not equipped for.
What comes next
Module 04 gets you properly set up — a full tour of the live Python playground powering every module, how Pyodide runs real pandas in your browser, and everything you need to know about the StreamPulse dataset before Section 2 begins.
See the full Data Science curriculum →Discussion
0Have a better approach? Found something outdated? Share it — your knowledge helps everyone learning here.