Talent

Machine Learning Engineer vs Data Engineer: Who to Hire First

With budget for a single hire, the question is not which title sounds better. Responsibilities, impact metrics, interviews and Spanish market bands, so you can decide which bottleneck you are paying to remove.

·16 min·Pedro Cailá · Kulturo
Talent

Machine Learning Engineer vs Data Engineer: Who to Hire First

The CTO of a Spanish startup has budget for exactly one vacancy. On the table are two CVs with Python, SQL and cloud experience. One presents as a Machine Learning Engineer, the other as a Data Engineer. Both look capable, and hiring the wrong one can leave the roadmap blocked while the team keeps paying for systems that do not touch its bottleneck.

Machine learning engineer vs data engineer is not settled by the job title, nor by who lists more tools. It is settled by the problem holding the product back: broken data, models that never reach production, or the absence of any metric proving value. This guide turns that difference into a concrete hiring decision.

The real decision, before comparing titles

Job titles distort hiring because both profiles can write services, query databases and work on AWS, GCP or Azure. The difference shows up when someone has to own a real system. A Data Engineer answers for the availability, quality and traceability of the data. A Machine Learning Engineer answers for the operational behaviour of a model that is already supposed to produce useful predictions.

Before publishing the role, the CTO should answer three questions:

  1. Is the team receiving data that is incomplete, inconsistent or too late? If so, the dominant profile is Data Engineer. Hiring an MLE first in that context creates frustration: they can tune models, but they will have no reliable features to work with.

  2. Is there a validated model that does not yet handle traffic, latency or monitoring? Then the priority is a Machine Learning Engineer. Bringing in a generalist Data Engineer may improve the platform, but it will not solve serving, drift, rollback or product integration.

  3. Does the product lack a clear metric for whether AI is adding value? In that case the vacancy should not be defined by technology alone. It needs shared ownership across product, data and engineering, with the ability to instrument experiments and connect the technical solution to a commercial decision.

Bottleneck Profile that should lead Cost of getting it wrong
Dirty data, fragile pipelines or unstable schemas Data Engineer Models with no reliable features and decisions built on faulty data
Correct model, but no stable deployment Machine Learning Engineer Research that never reaches the user, plus operational debt
Product with no metrics or diffuse ownership Hybrid profile with strong product collaboration Months of technical work with no evidence of impact

The right choice does not answer "which profile is better". It answers "which critical piece of work has to be finished over the next few months". The differences in responsibilities, stack, impact and interviews below exist to make that decision precise, not to memorise definitions.

Responsibilities, and where each one stops

The Machine Learning Engineer is the operational owner of the model once it leaves the notebook. They take part in training and validation, prepare the deployment, expose inference through an API or a batch process, monitor drift, and define how to fall back to a previous version if behaviour degrades. Their day-to-day counterpart is usually product, alongside Data Science and platform.

The Data Engineer builds the infrastructure that makes that cycle possible. They design batch and streaming pipelines, model the warehouse or lakehouse, maintain data contracts, govern schemas, and respond when a source changes without warning. If the MLE needs an up-to-date feature to make a decision, the Data Engineer guarantees that feature exists, arrives on time and keeps a stable meaning.

What each one delivers

Dimension Machine Learning Engineer Data Engineer
Main ownership Model lifecycle in production Data flow, storage and reliability
Deliverables Feature pipelines, feature stores, inference services and monitoring Reliable tables, data contracts, pipelines and warehouse models
Typical incidents Drift, serving errors, latency or rollback Ingestion failures, incompatible schemas, incomplete or late data
Collaboration Product, Data Science and platform Analytics, product, platform and data consumers
Critical decisions Prediction quality, retraining frequency and serving capacity Batch versus streaming, lineage, retention and processing cost

The boundary gets blurrier on small teams. The Data Engineer may own the offline pipeline while the MLE handles the online transformation and the endpoint. Both have to agree who maintains the contract for each feature, who pays the compute cost, and who investigates a wrong prediction when the source of the problem is unclear.

Ownership rule: every component needs one primary owner, but the feedback loop has to be shared. The model cannot blame the pipeline, and the pipeline cannot ignore how the prediction gets consumed.

To understand the operational scope of the data role, it helps to read a fuller explanation of what a data engineer does in technical teams. The practical test is simple: if the deliverable ends in a table or a reliable contract, it usually belongs to Data Engineering. If it ends in an operational prediction with guardrails, it usually belongs to ML Engineering.

Skills, tooling and production experience

A generic ad asking for Python, SQL, cloud and machine learning does not separate a mid-level profile from a senior one. Assessment should centre on decisions the candidate has already taken under pressure: what broke, how they detected it, what cost they optimised, and which migration they managed to lead.

For a Machine Learning Engineer, advanced Python is only the starting point. The candidate should be able to explain why they would use scikit-learn, PyTorch or XGBoost in a specific case, how they would manage features with a feature store, and how they would run MLOps with tools like MLflow, Vertex AI or SageMaker. They should also know the differences between online serving, batch inference and solutions such as Triton or vLLM, and be able to design drift evaluation, experimentation and guardrails.

A solid Data Engineer demonstrates depth in SQL, dimensional modelling and pipeline design. Airflow or Dagster, Spark or Flink, Kafka or Pub/Sub, dbt and lakehouse technologies like Iceberg or Delta are all part of the possible stack, but the tool matters less than the reasoning. The candidate should talk about observability, cataloguing, lineage, security and cloud cost with verifiable technical examples.

Area Machine Learning Engineer Data Engineer
Main language Advanced Python and production code Deep SQL, Python and pipeline-oriented programming
Processing Feature engineering, batch or online inference ETL, ELT, Spark, Flink and streaming
Platform MLflow, Vertex AI, SageMaker, Triton or vLLM Airflow, Dagster, dbt, Kafka, Pub/Sub and Iceberg or Delta
Quality Drift, evaluation, rollback and guardrails Freshness, contracts, validation and observability
Cloud and infrastructure AWS, GCP or Azure, IaC and security AWS, GCP or Azure, IaC, governance and cost control
Seniority signal A model with real traffic and continuous operation A complex migration, incident recovery and platform efficiency

Both profiles need to understand cloud, IaC and data security. The difference is the kind of failure they can isolate. A candidate who repeats "MLOps", "big data" and "LLMs" without describing an incident, an architectural decision or a trade-off probably knows the vocabulary better than the operation.

Ask for a concrete design and dig in. What happened when the schema changed? How was the backfill done? Which metric raised the alarm? Which part of the system was simplified to reduce consumption? A senior does not just list services. They explain consequences.

How to measure each engineer's impact

Impact has to be measured in two layers. System metrics show whether the component works; business metrics show whether it deserves continued funding. A perfect pipeline that enables no useful decision does not on its own justify a hire. A model with good offline performance does not prove value either if nobody measures its effect in production.

For Data Engineering, the minimum dashboard covers ingestion SLAs, freshness, failure rate, cost per GB processed, domain coverage, and the time needed to onboard a new source. Those metrics tell you whether the platform reduces manual work and whether consumers can trust the data.

For ML Engineering, watch inference latency, drift, rollback rate and A/B experiment results. Where the product allows it, the team should also connect the prediction to incremental revenue attributable to the model, to retention, or to another commercial metric defined before deployment.

Metric Data Engineer Machine Learning Engineer
Reliability Pipeline SLA, freshness and failure rate Endpoint availability and rollback rate
Performance Processing time and data latency Inference latency and throughput
Quality Validations, contracts and domain coverage Drift, calibration and prediction quality
Efficiency Cost per GB processed and cloud usage Cost per inference and retraining
Business Time to enable a new source Experiment uplift and attributable revenue

Instrumentation cannot arrive after the hire. Without logging, a feature store, traceability and experimentation, the team will argue opinions instead of evidence. The CTO should include those capabilities in the scope of the role and in the first-months plan.

The anti-KPIs are easy to spot: number of notebooks created, number of dashboards, raw volume of data stored, or models trained with no users. Those are signals of activity, not impact. The standard should be tighter: which decision got unblocked, which risk got reduced, and which part of the product works better because of the system.

Use cases and hiring examples

A Madrid fintech may have customer, transaction and risk data spread across systems with incompatible definitions. The warehouse is disordered, tables change with no contract, and analysts do not know which source to trust. Hiring an MLE would be a mistake: they could build a fraud model, but the features would sit on an unstable base and the team could not explain its predictions.

In that scenario the Data Engineer has to come first. Their job is to establish data models, reproducible pipelines, quality controls and a clear route from sources to consumers. The MLE can join later, once the product has usable signals and the team can measure whether a prediction improves detection or reduces risk.

The second case is an e-commerce scaleup with clean data and a recommendation that works in testing but fails when served to real users. The bottleneck is not ingestion. It is latency, feature freshness, fallback strategy and model monitoring. Here the Machine Learning Engineer is the first hire, with close collaboration from the Data Engineer to keep online and offline features consistent.

The case that demands a hybrid

A small B2B SaaS may not have the capacity to separate the two roles. It needs one person who understands the warehouse, designs pipelines, deploys models and talks to product. The answer is not to hire a junior with two titles. It is to look for a genuinely senior hybrid, able to declare limits and prioritise an architecture the team can actually operate.

The cost of getting it wrong can consume a critical part of the execution window for a seed or Series A company. Over six months, a wrong hire can produce notebooks with no serving, pipelines with no consumers, or a platform over-engineered before the product is validated. Over twelve, the team can also lose commercial learning, internal credibility and the room to correct the roadmap.

Commercial decision: hire to remove the bottleneck stopping you from selling, learning or keeping a product promise. Do not hire to complete a taxonomy of job titles.

In all three cases, cross-team collaboration comes after the first ownership is defined. The company does not need two specialists from day one, but it does need someone accountable for the whole system, and the boundaries written down before the vacancy opens.

Interviews that assess each candidate properly

The selection process has to change with the profile. Using the same take-home for a Data Engineer and a Machine Learning Engineer favours whoever solves isolated exercises well, not necessarily whoever can operate the system the company needs.

For Data Engineering, set an end-to-end design. The candidate should explain how they would extract data, where they would load it, how they would model the entities, and what would happen if a source sends duplicate or incomplete records. Ask about idempotency, backfills, contracts, observability and the batch-versus-streaming trade-off. They should also justify cloud cost decisions.

For ML Engineering, avoid centring the exercise on accuracy. Ask them to take a model to production, define drift monitoring, design an experiment, manage latency and explain when they would retrain. A good candidate talks about versioning, rollback, controlled degradation and communication with product.

A checklist for the interview panel

Green flags in Data Engineering

  • Reproducible design: separates extraction, transformation, validation and load, and explains how to repeat the process without duplicating data.
  • Operations: defines alerts, incident ownership, freshness and failure recovery.
  • Economic judgement: compares solutions on reliability and cost, not just on technology popularity.
  • Communication: translates a technical data contract into a clear expectation for product or analytics.

Green flags in ML Engineering

  • Production: describes the step from notebook to service, including dependencies, versioning and rollback.
  • Observability: distinguishes model quality, data drift, latency and infrastructure errors.
  • Experimentation: connects technical performance to a business metric and recognises when a model should not be deployed.
  • Collaboration: negotiates requirements with Data Science, platform and product without turning the model into a black box.

The red flags are symmetrical. A Data Engineer who only talks about tables and never about operational recovery can break the system in production. An MLE who only shows training curves and cannot explain how they serve, monitor or retire a model has not yet demonstrated production engineering.

Structure the process as a technical case, a design interview, a collaboration conversation and a review with the manager. The guide to competency-based interviews for technical teams helps separate demonstrated skill from surface familiarity with the vocabulary.

Salaries and market bands in Spain

The Spanish bands overlap, but the Machine Learning Engineer commands a premium when they combine modelling, MLOps, cloud and product experience. Indeed publishes an average of €55,575 a year, based on 31 salaries and updated on 5 January 2026, according to the salary data published for Spain.

Jobmentis puts the MLE at a median of €44,000, a 75th percentile of €60,000, a 90th of €81,000, around €36,000 for junior profiles and close to €75,000 for senior ones, based on its ranges for in-demand tech skills. In Data Engineering, roles indexed in Spain run from €24,000 to €26,000 in some positions up to €62,000 to €75,000 in senior ones, according to data and AI job listings in Spain.

Seniority Data Engineer (€) ML Engineer (€) Compensation notes
Junior 25,000 to 35,000 Around 36,000 Stack, city and production capability weigh more than the title
Mid 35,000 to 67,000 44,000 to 60,000 Roles and sectors overlap
Senior Up to 75,000 in published roles Around 75,000, 90th percentile 81,000 MLOps, LLMs, cloud and ownership raise the MLE premium
Upper brackets Up to 80,000 in local guides 55,000 to 96,000 in sector sources Streaming, regulated platforms and product can shift the comparison

Sector sources place the Machine Learning Engineer between €55,000 and €96,000 gross a year, while the AI-oriented Data Engineer sits roughly between €48,000 and €65,000. They also report increases of 12% for ML Engineer against 7% for Data Engineer at senior levels, according to OBS's AI salary guide.

For detail on the data profile, see the developer salary guide for Spain, which carries the data-engineering band alongside the other specialisations. Then adjust any band for Madrid, Barcelona, remote, sector, seniority and contract type. The package can combine fixed pay, variable, a bonus tied to deployment, and equity.

Use these figures to budget, but decide first which bottleneck you are paying to remove. A streaming specialist, a data generalist and an MLE capable of operating LLMs carry different costs and different effects on the roadmap. A salary reference guides the negotiation; it does not replace a precise description of the work.

Which profile to hire first, by objective

The right sequence starts from the failure, not from market pressure.

  • Faulty or non-existent data: hire a Data Engineer first. The maturity signal for moving to the next profile is that sources have contracts, pipelines are observable, and product can trust the features.
  • Validated model with no stable service: bring in a Machine Learning Engineer first. Look for evidence of deployment, monitoring and rollback capability, not just academic experience.
  • Small team with mixed needs: prioritise a senior hybrid, or an Analytics Engineer where the objective is joining reliable data to analytical and product consumption.

On an early team, the first person should remove the blocker affecting the roadmap. When the data foundation is stable but the prediction never reaches the user, the second hire should not repeat Data Engineering. When the MLE is already operating models, the next addition can reinforce platform, data or product depending on which incident dominates.

Growing to a team of three, separate ownership of data, models and product. At five, add platform or MLOps specialisation if operations demand it. At ten, avoid everyone depending on the single person who knows both the pipelines and the models, because that single point of failure caps the scale.

The job ad should answer one concrete sentence: "this person will be responsible for ___, measured by ___, over ___". If you cannot complete that sentence, you do not yet know which vacancy to open.


Kulturo helps startups, scaleups and technology companies identify and select AI/ML and data profiles, telling apart the people who train models from the people who integrate them into products. If you need to turn this diagnosis into a concrete search for a Machine Learning Engineer or a Data Engineer, visit Kulturo and describe the technical bottleneck you want solved.

We have the professional you need

Tell us the profile you need and we send candidates in under a week.

Start hiring