What is the difference between a data analyst, data engineer and data scientist?
Three roles that overlap but answer different questions.
- Data engineer — builds and maintains the infrastructure that makes data available. Pipelines, warehouses, ETL and ELT, orchestration, and data quality. Skills: SQL, Python or Scala, cloud platforms, and increasingly software engineering practice — version control, testing, CI. They answer "how do we get reliable data to the people who need it?"
- Data analyst — turns data into decisions. Exploratory analysis, dashboards, reporting, and working with stakeholders to define the question. Skills: strong SQL, a BI tool, spreadsheets, statistics, and — most importantly — communication. They answer "what happened, and why?"
- Data scientist — builds models to predict or optimise. Statistical modelling, machine learning, experiment design. Skills: Python or R, statistics, ML libraries, and enough engineering to deploy. They answer "what will happen, and what should we do?"
Analytics engineer is the newer role between engineer and analyst — modelling data inside the warehouse with tools like dbt, applying software practices to transformation logic.
Note: The honest observation worth making is that titles vary enormously between organisations, and in smaller companies one person does all three. It is also worth saying that most business value comes from reliable data and clear analysis rather than sophisticated models — a well-built pipeline and a good dashboard usually beat a machine learning project that nobody deploys.





