PL isn’t really a hot area ATM, including implementation. Even formal verification jobs are a bit hard to find these days. Perhaps it will be more popular when the next AI winter comes around :).
Until a few months ago I lead part of the XLA team at Google, working on ML compilers for CPU/GPU.
Most of us didn't have 10+ years of experience in compilers when we started on the team. I know one of us had a PhD in compilers. Possibly others did too, I'm not sure; this goes to show how unimportant the PhD in compilers / PhD at all was. I had no experience in compilers before I joined (not as the lead).
We're unusual, but I want to demonstrate that you really can get a good job working on compilers without a PhD or 10+ years of experience.
A PhD can get your foot in the door (showing mastery via the research you’ve done vs work experience). And then either/or is very useful in even knowing about and being recommended for these jobs (HR is generally not very useful in hiring).
In an absolute sense, this is true. There are never likely to be hundreds of thousands of compiler jobs.
In a relative sense, this isn't true. I run a PL research group with a heavy focus on (mostly dynamic) compilers, and I've lost track of the number of companies (some obvious, some not) who are desperate to hire people with a compiler background to do compiler stuff. Because there are so few people with suitable training, and as said elsewhere on this thread, industry has become used to taking good people without a compiler background and crossing their fingers that they can learn the ropes -- which good people of course can, given a bit of time. But, in my experience, even groups which are largely staffed with people who haven't done a compiler PhD would love to hire people with compiler PhDs.
Will this always be true? Well, it perhaps wasn't (as) true 15-20 years ago when people often only seemed to care about C++ and Java performance. But, given the continual increase in the quantity of languages that people want to run fast (and, often, on a variety of devices), it's hard to see that happening any time soon.
A couple of others have also mentioned compiling and ML. Aren't there already many ML libraries for compiled languages out there or are you referring to something else? I would love to hear more about this.
I would be similarly interested for how compilation might be applied to distributed systems. Cheers.
Something else. If your program is a well-defined set of operations (basically matrix operations for ML), you can optimize the whole specific program instead of calling bunch of individually optimized functions from the library and target a specific hardware (e.g. given GPU). Check for example Chris Lattner’s interview [1] and presentations on MLIR, or proceedings of C4ML workshop [2].
Application in distributed systems: from the top of my head - protobufs, compilation of Erlang and Elixir to BEAM, dask.
Pure compiler jobs are far and wide between. You might get a good job but your career movement will be limited.
I believe the future of compiler design will go hand in hand with the demands of the industry. Traditional “by the dragon book” compiler is a solved problem. The growth is in the application of compiler technologies to Machine Learning, distributed systems, specialized hardware.