I was motivated by the Compiler Construction As A Subject question and thought I would ask this one.

I have heard from a few people that they have a good "compiler team" (don't ask where I heard it, I can't remember), so that led me to wonder, how does one get a job on such a team?

I know there are classes at in the Undergrad programs and such, but is that something that a graduate degree would be the minimum (such as a Masters at the least)?

I am starting my Masters in Computer Science in two months and the school I am going to has two compiler classes, would that be enough to get a job doing compiler development or would more time need to be invested in it?

  • 2
    Participation in an open source compiler project (e.g., llvm) would be a great advantage.
    – SK-logic
    Commented Jan 26, 2011 at 14:36
  • Ditta @SK-Logic I am currently writing a compiler for my IB CS final. Getting experience writing compilers is probably the best way.... as with anything really.
    – user7007
    Commented Jan 26, 2011 at 20:02
  • 1
    I'd point out that one of the biggest names in compilers and runtimes doesn't have a degree. Anders Hejlsberg... brain behind Turbo Pascal, Delphi, C#, TypeScript Commented Aug 19, 2016 at 16:29

4 Answers 4


Well, compiler development is ultra hardcore which means that it requires lots of patience, passion and solid knowledge. Don't confuse patience, passion and solid knowledge with having any kind of degree. We've seen several applicants with Masters degree who couldn't even recognize strlen() in four lines of C code.

Definitely attend those classes and gain practical knowledge. Maybe you won't even like compiler development, but experience you gain will help you get some other very interesting development job.

  • thanks for the response. Would you give a chance to somebody that was self taught and had no academic CS background?
    – Jetti
    Commented Jan 26, 2011 at 15:28
  • 3
    just checkout the course of MIT OCW
    – segfault
    Commented Jan 26, 2011 at 16:42
  • 3
    @Jetti: I would give a chance to anyone having made significant contributions to an open-source compiler over the years, whatever their backgrounds :) Commented Jan 26, 2011 at 17:59
  • @Jetti: I definitely would once they bring evidence they have real knowledge. For example, if they wrote tests for a compiler optimizing code generator they are likely worth more than an average university graduate.
    – sharptooth
    Commented Jan 27, 2011 at 7:24
  • It gets even more interesting when the compiler is written in its own language.
    – ott--
    Commented Jun 3, 2013 at 19:27

The first step is to have a good CS background - potentially, the more the better, but at least to have completed a BSc Honours degree. There is actually some justification for this, in that compilers (generally, language translators) and the associated techniques (lexing, parsing) are well studied fundamentals of computer science.

I believe that substantial industrial (including open source) compiler development would of course mitigate a lack of academic credentials - but depends largely on the background of the candidate. Note that compiler development here would also cover interpreters and related tools for parsing.

A general competence in software engineering is needed. Domain knowledge of applications needing good compilers (e.g. scientific computation, game development) or experience of assembly language programming above and beyond a general programming background in a high level language is also a plus. Expert level knowledge of the language the compiler implements is also a plus.

Disclaimer: I am a compiler developer, and have been involved in interviewing candidates.


If you are serious about a career in compilers, I believe that you at least need formal education in language theory, especially type theory, formal semantics and computability theory. These areas would be difficult to learn outside of an academic setting. For the most part, compiler construction per se is a subject a smart dev can learn the basics on his or her own. However, if you want to work on cutting edge compilers that use extensive semantic analysis and instrumentation for security and optimization, you would probably need at least a master's thesis in this area.

  • 1
    That sounds more like an R&D role than a "product engineering role". I was a product engineer on armcc and LLVM (two production quality C/C++ compilers) and never needed any of those topics, nor did I even see reference to them in the 2 years I was working in this area.
    – dune.rocks
    Commented Sep 27, 2016 at 11:53

Now-a-days, tools like Flex, YACC and several similar tools had made the compiler construction much simpler. If you want approach it like a hobby since it fascinates you, then these tools will help you and you would be able to build a decent compiler front-end in a month.

Dragon Book is one of the all time favorite book for anyone who wants to self-taught the compiler construction. And as you move on you move on spend sometime reading the opensource compiler codes.

Not the answer you're looking for? Browse other questions tagged or ask your own question.