6 ms·
Something else in addition to the compiler engineering Pure compiler jobs are far and wide between. You might get a good job but your career movement will be l
by mynegation 7y ago
Something else in addition to the compiler engineering
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.
- seanmcdirmid 7y agoAgreed. There is a bit of a market for compiler/ML cross overs ATM (at MS, Facebook, and Google at least). But you need at least a PhD or 10+ years of experience. 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 :).
- PopeDotNinja 7y agoPL is short for... Programming language?
- seanmcdirmid 7y agoYes.
- mshockwave 7y agoyep. PL is definitely not equal to compiler. As in academic, PL is closer to theoretic computer science, especially computing theory. But in rest of the field, most of the time they're interchangeable.
- seanmcdirmid 7y agoCompiler comes under PL (if you want to publish a compiler paper, PLDI is the place to do that). PL is actually a very broad designation, and there are plenty of non-theory oriented PL researchers.
- jlebar 7y ago> There is a bit of a market for compiler/ML cross overs ATM (at MS, Facebook, and Google at least). But you need at least a PhD or 10+ years of experience. 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.
- seanmcdirmid 7y agoNote that I didn’t say a PhD or 10 years experience in compilers, it could be ML or some other related area. There really isn’t such a thing as a PhD in compilers, and even in the SIGPLAN area compiler specialized PhDs are rare (formal verification is much more common). 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).
- jlebar 7y agoIirc none of us had any ML experience. :)
- seanmcdirmid 7y agoNoted. It is a bit ironic since a common complaint/frustration among PL people (mostly with PhDs) working at google is that they have to work on ads...
- ScottBurson 7y agoPlease contact me. Email in profile.
- closeparen 7y agoSufficiently large engineering shops tend to evolve configuration and business-rule languages (textual and visual) that include unacknowledged, ad-hoc compilers and interpreters. Traditional compilers techniques seem relevant to helping those projects scale and mature.
- bogomipz 7y ago>"The growth is in the application of compiler technologies to Machine Learning ..." 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.
- mynegation 7y ago> Aren't there already many ML libraries for compiled languages out there or are you referring to something else? 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. [1] https://youtu.be/yCd3CzGSte8 https://youtu.be/yCd3CzGSte8 [2] http://c4ml.org/ http://c4ml.org/
- ltratt 7y ago> Pure compiler jobs are far and wide between. 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.