Python, SQL… and What Else? Programming Languages in Data Engineering Jobs
How often Scala, Java, Go and Rust appear in 1,738 data engineering jobs, which roles and industries ask for them, and which one to learn after Python and SQL.
By Adyl · · 13 min read
Every data engineering job seems to ask for Python and SQL, and the data confirms it. The harder question is what to learn after them. Scala, because Spark is written in it? Java, because Kafka is? Go, because platform teams like it? Or should you skip a third language and go deeper on what you know?
To answer it, we looked at every data engineering job its employer posted between 1 and 31 October 2026 that passed our moderation: 1,738 jobs at 730 companies, collected from company career pages, ATS boards, job boards and Hacker News, with duplicates merged. For each job we recorded the programming languages it names, and whether it lists each one as required or nice-to-have.
The short version
- Python (71% of jobs) and SQL (66%) are the baseline. Half of all jobs (52%) name both. SQL is almost never optional: it’s required in 98% of the jobs that name it.
- About one job in four (27%) names a third language, and one in six (17%) requires one. Java (10%), Scala (9%) and Go (7%) lead. TypeScript (4%) and Rust (3%) follow at a distance.
- Each of those languages belongs to a different kind of job. Scala comes with Spark: 80% of Scala jobs name it. Java comes with Kafka and Flink. Go comes with Kubernetes and platform teams: 79% of Go jobs are platform roles.
- Industries differ sharply. Software and AI companies ask for Go and Rust, European consulting firms ask for Scala, and finance and healthcare rarely ask for anything beyond Python and SQL.
- Analytics engineers can mostly skip a third language. Only 12% of analytics engineering jobs name one.
The ranking
| Language | Jobs naming it | Share of all jobs | Required when named | Strict view |
|---|---|---|---|---|
| Python | 1,235 | 71% | 86% | 79% |
| SQL | 1,140 | 66% | 98% | 96% |
| Java | 170 | 10% | 64% | 50% |
| Scala | 149 | 9% | 64% | 53% |
| Go | 113 | 7% | 59% | 48% |
| TypeScript | 76 | 4% | 53% | 44% |
| Rust | 47 | 3% | 40% | 15% |
Some jobs put every skill in a single requirements list, and we count everything in such a list as required. The strict view therefore repeats the count using only jobs that list at least one nice-to-have, so we know the employer drew the line. Python and SQL barely move. Java, Scala and Go fall to about a coin flip. Rust is the most optional language in data engineering: in jobs that separate the two lists, it’s a nice-to-have 85% of the time.
Further down the list come JavaScript (41 jobs), C++ (37), Bash (36), R (28), Kotlin (18) and C# (13). Counted together, JVM languages (Java, Scala or Kotlin) appear in 247 jobs, 14% of the market. Java and Scala often appear in the same job (75 jobs).
Python and SQL: the baseline
The two lead in different places. SQL dominates analytics engineering: it’s named in 89% of those jobs, against 68% for Python. Python leads in platform, DataOps and MLOps roles (67% against 31%), where the work is closer to software engineering than to modelling data. Core data engineering jobs name both equally (78% each).
Of the 275 jobs that name neither, 220 name no programming language at all. 129 of those list tools, such as Spark, Databricks or Azure Data Factory, without naming a language.
Which roles ask for which language
Role explains most of the variation in this report:
- Core data engineering (pipelines, ETL, warehouses) asks for Java and Scala, 11% each. Go barely appears (2%).
- Platform, DataOps and MLOps is where Go lives: 21% of these jobs name it, more than Java (14%). Rust appears in 9%, close to all of the Rust demand there is.
- Analytics engineering hardly asks for a third language at all. Java (3%), Scala (5%) and Go (1%) are rounding errors.
By contrast, seniority makes little difference. Junior and intern jobs name Python (73%) and SQL (74%) as often as senior ones do (77% and 69%). Scala (8% of junior jobs) and Java (11%) appear in junior roles at about the same rate as in senior ones. If you’re starting out, you won’t be expected to bring a JVM language more often than an experienced hire.
What each language comes with
A language is rarely asked for on its own. It comes with a set of tools, and those tools tell you what the job actually is.
Scala means Spark. 119 of the 149 Scala jobs (80%) name Spark, and almost half name Databricks. The tools that are unusually common next to Scala are Hadoop, EMR and Jenkins: older, self-managed big-data platforms where Spark jobs are written in Scala rather than PySpark. Two-thirds of Scala jobs (99) are core data engineering roles.
Java means streaming and JVM infrastructure. More than half of Java jobs name Kafka (56%), and 28% name Flink. Java is also unusually common next to Pulsar, Kafka Connect and Druid. 48 of the 103 Flink jobs in our data name Java, more than any other language after Python. If you want to work on real-time systems, Java is the language most often listed with them.
Go means platform engineering. 89 of the 113 Go jobs (79%) are platform, DataOps or MLOps roles, and 60% name Kubernetes. Go also appears with gRPC, Redis and Elasticsearch, which is backend-service territory. These jobs build the systems that pipelines run on, not the pipelines themselves.
Rust is small, early and infrastructure-only. 40 of its 47 jobs are platform roles, and most list it as a plus. The employers include data infrastructure vendors such as Fivetran (5 jobs), Datadog (4) and Workato (4), and AI labs such as Anthropic (3). It’s worth watching, but not yet worth learning for the job market alone.
Which industries ask for which language
We know the employer’s industry for 724 of the 1,738 jobs. Within those:
- Consulting and IT services is Scala country. 17% of consulting jobs name Scala, the highest share of any large industry, while Go hardly appears (1%). Most of these come from French-headquartered firms: Talan (9 Scala jobs), Sopra Steria (8), Sia (5), Devoteam (4) and Inetum (3).
- Finance is the most Python-and-SQL-only industry of its size. Of 143 finance jobs (fintech, banks, insurers), only 7% name Java, 5% Scala and 3% Go. Their data engineering jobs ask for Python and SQL, and little else.
- Software and SaaS companies ask for the widest range. Go (24%), Java (19%) and Rust (13%) all appear here more than anywhere else except AI companies. Several of these employers build data products, such as Fivetran, Datadog and ZoomInfo.
- AI companies ask for Go and Rust, and less SQL. Only 40% of the 45 jobs at AI companies (Anthropic, Mistral AI, OpenAI and others) name SQL, the lowest of any industry, while 24% name Go and 20% Rust. Nearly half of these jobs (21 of 45) are infrastructure roles.
- Media, adtech and gaming leans on Scala (19%) and Python (85%), which fits large event streams processed with Spark.
- Automotive is mostly Tesla (35 of 47 jobs). It names Python in 94% of jobs and Java and Go in 17% each.
- Healthcare (25 jobs) and telecom and energy (25) almost never ask for a third language: one Java job and one Scala job between them.
One employer can shift a small group a lot. DoorDash posted 31 data engineering jobs in October, and it’s the strongest single source of JVM demand we saw: 35% of its jobs name Java and 32% Scala. Its “food delivery” industry is DoorDash alone, so we show it by name.
Where the jobs are
- Scala is strongest in Brazil (18% of jobs), France (16%) and India (12%), places with a lot of consulting and outsourced Spark work. In the US it appears in only 6% of jobs.
- Go is a North American language in data engineering. 10% of US jobs and 15% of Canadian jobs name it. Elsewhere it’s 5% or less, and in Germany and Brazil it’s almost absent.
- Java is the most evenly spread, at 8–15% in most large markets.
- The UK and Poland ask for the least. Only 9% of UK jobs and 5% of Polish jobs name any of the three, against 18% in the US.
Does a third language pay more?
In the US, jobs naming Go, Rust, Scala or Java state higher salaries than the market as a whole ($209k–226k against $180k). Jobs naming SQL state less ($167k).
That doesn’t mean learning Go adds $45k to your salary. Three things explain most of the gap:
- The samples are small. Only 176 US jobs state a salary, and only 11 of those name Scala or Rust.
- Role and employer drive it. 22 of the 25 US Go jobs with a salary are platform roles, at companies such as Tesla, Anthropic, Roblox and Datadog. SQL is lower because it’s the core of analytics engineering, which pays less than platform engineering.
- Within the same level, the gap shrinks. Among senior US jobs, the median is $184k overall against $193k for jobs naming Java (12 jobs) and $210k for jobs naming Go (9).
A fair reading: the third language marks the kind of job, and the kind of job sets the pay.
So what should you learn next?
Choose by the job you want, not by how popular the language is:
- Analytics engineering: don’t learn a third language yet. Only 12% of these jobs name one. Your time is better spent on advanced SQL, data modelling and dbt.
- Spark-heavy data engineering: learn Scala, or Java. 83% of Spark jobs name Python, so PySpark covers most of them. The ones that name a JVM language split almost evenly between Scala (20% of Spark jobs) and Java (18%). Scala is most in demand in consulting and in France, Brazil and India.
- Streaming: learn Java. It’s named in 29% of Kafka and Flink jobs, ahead of Scala (17%) and Go (11%).
- Platform and infrastructure: learn Go. It’s in 21% of platform jobs and 35% of those that name Kubernetes. If you’re in North America, it’s the most common third language after Java.
- Rust: only if you want it. It’s growing in infrastructure and AI companies, but in data engineering it’s still a plus 85% of the time.
Whichever you choose, keep SQL sharp. It’s named in two-thirds of all jobs and required in 98% of those, more reliably than any other skill we track.
Browse current jobs by language: Scala, Java, Go, Rust, Python.
How we counted
- What’s included: jobs whose employer-stated posting date falls in October 2026 and that passed our moderation as genuine data engineering roles (data engineering, analytics engineering, data platform and infrastructure, DataOps and MLOps). Jobs that have since closed are included. A job posted on several sites counts once.
- Languages: we read each job description and record every programming language it names, marked as required or nice-to-have according to the description. “Preferred”, “bonus” and “a plus” count as nice-to-have. When a job puts all its skills in one list, we count them all as required, hence the strict view. SQL counts as a language here because employers list it as one.
- Industries: the employer’s industry, known for 724 of the 1,738 jobs. Groups: Finance covers fintech, banks, insurers and crypto companies; Software and SaaS includes cybersecurity and mobile apps; Media, adtech and gaming covers all three. Industries with fewer than 40 jobs are mentioned in the text but not charted.
- Countries: a job open in several countries counts in each.
- Salaries: stated ranges for US jobs, taken at the midpoint as annual base pay in USD, with contractor rates left out.
- Coverage: these are the jobs our sources reach: company career pages, ATS boards, job boards and Hacker News “Who’s Hiring”. It isn’t the whole market. LinkedIn and Indeed, for example, aren’t included.
For the tools that go with these languages, see The Data Engineering Stack Employers Actually Ask For: October 2026, and for the wider market, The State of Data Engineering Jobs in October 2026. To get new data engineering jobs every week, subscribe to the weekly Digest.