The short answer
A good data engineer job description names the platform, the pipelines the person will own and the failure they will be called about, instead of listing tools. Use the template below, scale responsibilities by seniority, keep must-haves to five, and pair each responsibility with one screening question so the interview tests what the advert promises.
Hiring for this?
Conntal places data engineers on contract, contract-to-hire or direct hire, each screened by a practitioner before you see a CV.
Most data engineer job descriptions are a tool list with a salary range. They attract people who have touched the tools and say nothing about the job, so the interview has nothing to test against. This page is written for the hiring manager: a template you can paste, the responsibilities that change with seniority, and a screening question for each responsibility. The data platform practice at Duczer East screens ConnTal's data engineers on a real migration or lineage problem, and the questions in the screening section are the same shape.
Copy-ready data engineer job description
Paste this, replace the capitalised placeholders, and delete any line that is not true of the job. A line you cannot interview against should not be in the advert.
Title
Senior Data Engineer, [PLATFORM] (for example Cloudera CDP, Databricks, Snowflake or Kafka streaming). Name the platform in the title. Candidates search by it.
About the role
[COMPANY] runs [PLATFORM] to deliver [WHAT THE DATA IS USED FOR, for example regulatory reporting or product analytics]. You will own the pipelines that move data from [SOURCE SYSTEMS] into [TARGET PLATFORM], keep them correct and on time, and be the person we call when a load fails. You report to [MANAGER TITLE] in a team of [TEAM SIZE].
What you will do
- Design, build and run batch and streaming pipelines from [SOURCES] into [TARGET], each with a stated freshness and correctness target.
- Make every pipeline safe to re-run: idempotent loads, a documented backfill procedure and a replay path.
- Model data in [WAREHOUSE OR LAKEHOUSE] for [CONSUMERS], and agree schema changes with the producing team before they ship.
- Own data quality: tests on the tables that matter, alerts that reach a person, and a written response for each alert.
- Control the cost and performance of [PLATFORM]: partitioning, file layout, cluster or warehouse sizing, query tuning.
- Meet access, lineage and retention requirements for [POLICY OR REGULATION].
- Plan and run platform upgrades and migrations, including [EXAMPLE, such as a CDP minor-version upgrade or Airflow 2 to 3].
What you bring (five items, no more)
- Production pipelines on [PLATFORM], with at least one incident you can describe in detail: version, symptom, cause, fix.
- Strong SQL, and one of Python, Scala or Java for pipeline code.
- Orchestration experience in [ORCHESTRATOR, for example Airflow or Oozie].
- A habit of testing data, not just code: row-count reconciliation, null and duplicate checks, schema contracts.
- Version control, code review and CI applied to data code.
Nice to have
- [SPECIFIC TOOL OR VERSION] experience. If you would train it in a month, it belongs here.
- Cloud provider certification at associate level or above.
- Experience in [YOUR INDUSTRY].
Engagement
[CONTRACT, CONTRACT-TO-HIRE OR PERMANENT]. [ONSITE DAYS, REMOTE OR HYBRID]. [START DATE]. [TERM, IF CONTRACT]. Time zone overlap required: [HOURS].
Responsibilities change with seniority, so say which level you are hiring
The same title covers three different jobs. State the level in the first line and write responsibilities from the row that matches it.
| Level | Owns | Decides | Judged by |
|---|---|---|---|
| Mid-level | Individual pipelines and their tests, delivered against a design someone else made | Implementation details inside an agreed design | Pipelines that run unattended and are easy for others to read |
| Senior | A domain end to end: ingestion, modelling, quality, cost and on-call | Design, trade-offs and what is not worth building | Incidents that do not repeat; consumers who trust the numbers |
| Lead or principal | The platform and its roadmap, upgrades, standards and spend | Technology choices, migration sequencing and who is accountable | Platform cost and reliability over quarters, and how fast others become effective |
Must-have means you would refuse to hire without it
If you would train a skill in a month, it is a nice-to-have. A list of twelve must-haves filters out good candidates and lets confident ones through, because nobody has all twelve.
| Requirement | Must-have? | Why |
|---|---|---|
| SQL at depth: joins, window functions, reading a query plan | Yes | Every data job ends in SQL, and it is slow to teach. |
| One pipeline language (Python, Scala or Java) | Yes | Which one matters less than being able to write tested code. |
| Owned a production pipeline through an incident | Yes | Separates people who ran it from people who built it once. |
| Orchestration (Airflow or equivalent) | Yes | The scheduler is where retries, backfills and dependencies live. |
| The exact version of your platform | No | A strong engineer closes a minor-version gap in weeks. |
| Cloud certification | No | It shows an exam was passed, not that the person has been on call. |
| dbt, Spark or Flink | Depends | Must-have only if the first quarter's work is in it. |
| A degree in computer science | No | Not predictive of pipeline ownership. |
Screening questions mapped to the job description
Each responsibility in the template has one question that tests it. Ask the question that matches the line you wrote, and listen for the answer in the third column. Where a documented behaviour is involved, it is cited.
| Responsibility | Question | A senior answer contains |
|---|---|---|
| Safe to re-run | A nightly load fails halfway and is run again. What is in the target table afterwards? | A question about whether the load is idempotent. Replace-partition or upsert rather than append. Reads a fixed partition, not 'the latest'. Avoids now() inside the logic. Airflow's own guidance is that tasks should produce the same outcome on every re-run, which means upsert over plain insert and a specific partition over the latest data [1]. |
| Data quality | A dashboard figure is wrong and every pipeline is green. Where do you look? | Separates job success from data correctness. Checks upstream schema or meaning changes, reconciles counts to source, considers late-arriving data. Ends by adding the test that would have caught it. |
| Cost and performance | A query that took minutes now takes hours and nobody changed the code. Why? | Data growth, small files or skewed partitions, stale statistics, concurrency. Reads the query plan before changing anything. |
| Schema agreements | A producing team renames a column. How do you find out? | Wants to find out before release: a schema contract or registry, a failing test in CI, a named owner. A weak answer is 'the pipeline breaks'. |
| Upgrades and migrations | Plan a platform upgrade when the business will not accept a weekend of downtime. | A rollback point agreed first, a parallel run with reconciliation, communication to consumers, and what would make them stop. |
| Access and lineage | An auditor asks where a regulatory figure came from. What do you show? | Lineage from source system to report, who owns each hop, retention and access controls. Has done this, not read about it. |
Score each answer on three things: did the candidate ask a clarifying question first, name a failure mode, and state a trade-off. Our wider method is described on the how-we-vet page, and the reasoning for publishing screens at all is in why we publish our screening questions.
Contract and permanent data engineer postings differ in five lines
Keep the rest of the template identical and change only these lines.
- Deliverable. A contract posting names what finishes: the migration, the upgrade, the backlog. A permanent posting names what grows.
- Start and term. A contract needs both. A permanent role needs a start window only.
- Handover. Contract postings should state the documentation and knowledge-transfer expected at the end.
- On-call. State it for both. Unstated on-call is the most common surprise in the first month.
- Access. Say how long data and system access takes to provision. A contractor who waits weeks for access has lost a real share of a short term.
On cost, ConnTal's indicative from-rates for senior contract engineers are $80 an hour for nearshore and offshore delivery and $120 an hour for onshore. The final rate depends on platform scarcity, seniority, clearance and term, so treat these as a starting point, not a quote.
If you want a data engineer screened against this rubric by a practitioner, send us the role brief and we will tell you plainly whether we can staff it.
Hiring for this?
Conntal places data engineers on contract, contract-to-hire or direct hire, each screened by a practitioner before you see a CV.
Sources
- [1] Apache Software Foundation, Apache Airflow documentation: Best Practices. Retrieved 31 October 2026.Primary source
Go deeper with the engineers who run it
Conntal is the staffing arm of AceMQ. When you need the platform supported rather than a person placed, these are the pages to read.
Related questions
What should a data engineer job description include?
The platform, the pipelines the person will own, the freshness and correctness expectations, on-call duties, five must-haves and a short nice-to-have list. Name the level, because mid-level, senior and lead data engineers do different jobs.
What is the difference between a data engineer and an analytics engineer?
A data engineer owns the pipeline and the platform underneath it: ingestion, storage, orchestration and governance. An analytics engineer models data above the warehouse for consumption. One advert asking for both usually fails to hire either.
How many must-have skills should a data engineer posting list?
Five at most. A must-have is something you would refuse to hire without; anything you would train in a month is a nice-to-have.