Ask HN: Are compiler engineers still in demand, and what do they work on?

logcrater | 187 points

I lead a PL/VMs/compilers research group and the number of organisations interested in hiring people in this area keeps growing and growing. Now, that's not to say that there are ever going to be hundreds of thousands people working in this field, but it turns out that lots of organisations have realised they have pressing language needs. It varies all the way from those wanting to make mainstream language implementations perform better on their codebases to those wanting to reimplement a major internal language in a modern fashion.

At the moment -- and I expect for the foreseeable future -- demand quite significantly outstrips supply. Because of that, organisations are often quite flexible in how they view potential hires in this area. Simplifying a bit, there are two main ways to get in to the field: obtain specific training in the field (e.g. a PhD); start / contribute to a project (not necessarily OSS) that shows expertise (e.g. if you start filing high quality PRs against Rust or LLVM, people will fairly quickly realise you know what you're doing).

Best of luck -- it's a really fun field, with lots of interesting challenges, and a good group of people!

ltratt | 4 years ago

I’ve worked in compilers (optimizations) at Microsoft (vc++) and NVIDIA(CUDA) - register allocators, schedulers and loop optimizers were super fun.

Then I worked on database (query) compilers. I managed Apache Hive at Hortonworks, and that has a compiler. These are very different beasts.

Now, my startup is working on code analysis and cross compilers for data engineering, including Spark.

Some of my colleagues are working in AI chip startups.

It’s hard to find high quality engineers in both kinds of compilers. Just like database internals engineers there is high demand.

Plug - I’m hiring at Prophecy.io for compiler engineers.

ibains | 4 years ago

I work at Oracle Labs where GraalVM (graalvm.org) is being developed. I think this is one of the most exciting places to be right now for compiler engineers, and people with the right skills are certainly in demand. Some things that came out of this: partial escape analysis, the Graal JIT compiler, SubstrateVM, native-image, several Truffle language implementations (JS, Ruby, Python, LLVM), IGV for visualizing different layers of IRs, integrating GraalVM in the Oracle Database (MLE).

randomthrow4w4y | 4 years ago

Not only is it still in demand, I think demand for compiler engineers is growing (and fast) due to the end of Moore’s law, since that means performance improvements are mainly (and soon only) happening due to improving software and making specialized hardware, and both of those involve heavy use of compilers and compiler writers.

JIT compiled scripting languages and DSLs (domain specific languages) are all over the place, GPUs and the APIs that run on GPSs all need special compilers, embedded processors and custom chips often need custom compilers and/or custom optimizations.

There’s certainly a ton of optimization work out there, so if you like designing optimizations on top of existing compilers, you can pretty much pick what kinds of API/software/hardware you want to work on.

dahart | 4 years ago

Intel, IBM, Nvidia, Google, Red Hat, and MSFT are all currently hiring complier engineers. Experience with LLVM is probably useful for many of those opportunities. https://us-redhat.icims.com/jobs/75775/software-engineer---l... https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSit... https://careers.ibm.com/ShowJob/Id/764855/Software-Developer...

Google234 | 4 years ago

IMO, you should forget about compiler engineering as working on the backend of, say, gcc, or llvm. Yes, there are such positions (e.g., intel needs people adapting compilers to new processor instruction sets) but they are few and very specialized.

Instead, think about languages in general. There is a myriad of opportunities between the js eco system, JVM and .NET, things like Rust and even low-level languages like LLVM. It should be straightforward to pick features from one eco system and port them to another. Say linear types from Rust to the JVM. Pick one or two such features, port them to your favorite eco system and provide a prototype compiler/macro library on github. With that kind of experience under your belt, you should be the goto guy for any software company that does tooling in that ecosystem. From that vantage point you could start looking for ever more interesting work.

choeger | 4 years ago

I have been curating this list [1] for the last little while, and made it public about a month ago.

While not a list or positions as the URL suggests, ands to help remind people that compilers are in way more companies than you think!

[1]: https://github.com/mgaudet/CompilerJobs

mgaudet | 4 years ago

Since there are people in the know here:

How would you go in the adjacent field of language design? I would be super interested in doing research on the mental load of different programming languages (and different representations of information). I.e. put a hacker in a fMRI and let her solve tasks in different languages.

turbinerneiter | 4 years ago

There has been a resurgence due to the proliferation of more special-purpose processors, like Google TPU or Tesla FSD. I anticipate this trend to continue due to Moore's Law slowdown. However, if you're not really into this, there's no reason to not pursue some other subset as on a relative basis, higher levels of the stack likely will have many more opportunities than infrastructure.

tgma | 4 years ago

I'm curious about whether there is a large skills overlap between engineers working on compilers and embedded DSLs (for the case of external DSLs, such an overlap would IMO be quite significant).

By the way, are there any people here (or, perhaps, you could recommend someone) who is very capable and would be interested in doing some potential contract work on a DSL (I'm still pondering about embedded vs. external - obviously, each category has their own pros and cons, but platform stack selection adds an additional complexity dimension)? Several people who I have approached so far, are definitely very knowledgeable, but they all work in academia and, thus, practically, have no time for consulting or contract work. :-( Not to mention potential issues arising from IP clauses in some experts' university contracts, hence the question above.

ablekh | 4 years ago

There’s a lot of compiler work in query processors for analytical systems. High-level languages compiling down to machines at different levels of abstraction, LLVM being the lowest and database operator libraries a bit higher. I’d like to find someone interested in pursuing that direction.

quantified | 4 years ago

There's been a resurgence due to interest in specialized processors and new computing architectures and systems in general, mostly for ML.

deepnotderp | 4 years ago

Mostly semiconductor companies. Compiler engineers do work for CPU/GPU/FPGA/AI chipsets.

mohankumar246 | 4 years ago

Quite a bit of work is happening around https://nim-lang.org/ and perhaps Status.im is still hiring.

nimmer | 4 years ago

Check out http://www.compilerworks.com

I worked there for awhile but compilers aren't really my thing. They're building cool stuff, though. Their tech converts database queries between dialects, and can even run as a translating proxy (for example, run Oracle code on Postgres) and provide performance insights into your code. Their clients are big name companies who need to maintain millions of lines of DB code.

kstenerud | 4 years ago

Definitely in demand! For example, there's a bunch of really interesting commercial work happening building or working on compiler toolchains for WebAssembly.

Joe8Bit | 4 years ago

Apple has teams working on LLVM, Clang, and Swift. They have some open positions right now.

slavapestov | 4 years ago

I'm interested in writing parsers, but my experience is only with small scale web editors for specific type of documents full of business rules

e.g user write documents with something like markdown and then editor renders document with things like auto numeration, displaying other referenced elements by syntax e.g '@element2'

Does there exist job in writing parsers?

ghjhkhj | 4 years ago

What qualifies someone to be a Compiler Engineer?

Compsci degree? Working compilers? Opensource commits? Github repo full of parsers?

peglasaurus | 4 years ago

What's a good paper (or book) reviewing current trends in compilers?

Maro | 4 years ago

There's some work happening in the blockchain space because people are starting to create their own smart contract languages. I don't know of any other space seeing so many 'new' languages being created in such a short space.

I've seen jobs advertised by teams developing Cardano, Tezos, and Ethereum. It's worth looking at their project pages, seeing which teams work on it, and then checking their careers pages. I know IOHK have been hiring in the space although that's specifically functional compilers - however nothings up on their careers pages right now.

exdsq | 4 years ago

We're hiring compiler engineers at Horizon Quantum Computing (http://horizonquantum.com).

jfitzsimons | 4 years ago

I always thought "Program Vector Representations for Deep Learning"[1] was an interesting combination of compiler technology (parsers, ASTs) and machine learning.

[1] https://arxiv.org/pdf/1409.3358.pdf

wrnr | 4 years ago

Obfuscators, I work for a company that builds mobile obfuscation at a compiler level (LLVM ir and Java bytecode). There are also gaming companies that use similar techniques and technology for anti cheat engines.

I also often see job postings for compiler developers in the embedded field.

travolter | 4 years ago

Julia computing hires compiler talent

xiaodai | 4 years ago

Codeplay Software develop compilers for new architectures and new high performance programming models. They are always looking to hire talented engineers.

aidandodds | 4 years ago

Definitely in demand! We are hiring compiler developers at www.edument.se (remote or onsite in Sweden or Prauge), contact me at tore (at) edument . se

tndata | 4 years ago

I work at an embedded OS company on the entire command-line toolchain (as opposed to the GUI-based IDE). That includes maintaining existing and doing new compiler ports.

We always have a great deal of trouble finding qualified candidates to fill open reqs. We find few are interested in this sort of technology, everyone want to either work on cool new applications (like self-driving automobiles) or high-profile web-based stuff. Our entire department is either waiting for retirement or a heart attack (whichever strikes first, and retirement is not a realistic expectation).

tl;dr compiler engineers are in demand and they work on compilers.

bregma | 4 years ago

A lot of work with compilers in blockchain/Ethereum.

But if you're considering an education choice, don't overspecialise. You will most likely change specialisation in 5-10 years (different market, different technology), so if all you know is just compiler engineering, it will be way tougher for you.

Also, make sure you learn a lot about algorithms / computer science in general. If you know that, switching engineering fields will be easy.

kolinko | 4 years ago

You should add some contact information to your profile.

And/or get in touch.

samatman | 4 years ago

mostly i see people working in probabilistic programming languages and formal methods

probinso | 4 years ago

GraalVM

akerro | 4 years ago

Compiler engineer...

It is very sad how the engineer term has been corrupted.

You are an engineer only if you pass the FE exam and are a registered member of the state association of engineers

well_said | 4 years ago