Ask HN: How to get a job as a compiler engineer?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • publications

    Publications from Trail of Bits

  • The company I work for (Trail of Bits[1]) does compilers-based program analysis and engineering; it's been a significant part of my job for the last 4 years of my career. We're also hiring[2]!

    Overall, I think the job market for compilers/program analysis is pretty strong right now. It's also well spread between companies of different sizes and scopes: MS and Apple are doing serious LLVM-based optimization work, while you also see medium-sized companies (Fastly and CloudFlare) doing interesting work on WebAssembly. On the research side, companies like ToB and Galois have been doing LLVM and other compiler-based program analysis for over a decade.

    [1]: https://www.trailofbits.com

    [2]: https://www.trailofbits.com/careers

  • codeql

    CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security

  • > What are the companies that do exciting stuff in compilers?

    Some companies solve problems that have a larger component of parsing and evaluating things.

    One example is Hasura's SQL-to-GraphQL layer: https://hasura.io/

    Another example is GitHub's CodeQL: https://github.com/github/codeql

    A third example -- I forget the name of the company -- parses Counter-Strike games real-time and restructures this data for better analytical introspection, e.g. for betting, time-scrollable replay, 2D rendering, etc. There appears to be a lot of hard-earned going from a stream of events monkey-patched over two decades, to a complete model of a game (who's on what team, who is dead, what round is this, etc.)

    Microsoft does a lot of interesting compiler-related stuff, too, of course.

    Then there's blockchain: A lot of programming-language enthusiasts have been employed to write VMs and DSLs to express safe application-level environments. An example is Anoma's Juvix: https://github.com/anoma/juvix

    A job I was looking at involved building a more programmatic interface to some legacy SCADA systems, i.e. make old factory monitoring systems interoperate via a DSL. The idea, I think, is to transform and manage the configuration files from a dynamic GUI system.

    tl;dr: If your main tool is a compiler, there are compiler problems everywhere.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • Hasura

    Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.

  • > What are the companies that do exciting stuff in compilers?

    Some companies solve problems that have a larger component of parsing and evaluating things.

    One example is Hasura's SQL-to-GraphQL layer: https://hasura.io/

    Another example is GitHub's CodeQL: https://github.com/github/codeql

    A third example -- I forget the name of the company -- parses Counter-Strike games real-time and restructures this data for better analytical introspection, e.g. for betting, time-scrollable replay, 2D rendering, etc. There appears to be a lot of hard-earned going from a stream of events monkey-patched over two decades, to a complete model of a game (who's on what team, who is dead, what round is this, etc.)

    Microsoft does a lot of interesting compiler-related stuff, too, of course.

    Then there's blockchain: A lot of programming-language enthusiasts have been employed to write VMs and DSLs to express safe application-level environments. An example is Anoma's Juvix: https://github.com/anoma/juvix

    A job I was looking at involved building a more programmatic interface to some legacy SCADA systems, i.e. make old factory monitoring systems interoperate via a DSL. The idea, I think, is to transform and manage the configuration files from a dynamic GUI system.

    tl;dr: If your main tool is a compiler, there are compiler problems everywhere.

  • juvix

    Discontinued Juvix empowers developers to write code in a high-level, functional language, compile it to gas-efficient output VM instructions, and formally verify the safety of their contracts prior to deployment and execution.

  • > What are the companies that do exciting stuff in compilers?

    Some companies solve problems that have a larger component of parsing and evaluating things.

    One example is Hasura's SQL-to-GraphQL layer: https://hasura.io/

    Another example is GitHub's CodeQL: https://github.com/github/codeql

    A third example -- I forget the name of the company -- parses Counter-Strike games real-time and restructures this data for better analytical introspection, e.g. for betting, time-scrollable replay, 2D rendering, etc. There appears to be a lot of hard-earned going from a stream of events monkey-patched over two decades, to a complete model of a game (who's on what team, who is dead, what round is this, etc.)

    Microsoft does a lot of interesting compiler-related stuff, too, of course.

    Then there's blockchain: A lot of programming-language enthusiasts have been employed to write VMs and DSLs to express safe application-level environments. An example is Anoma's Juvix: https://github.com/anoma/juvix

    A job I was looking at involved building a more programmatic interface to some legacy SCADA systems, i.e. make old factory monitoring systems interoperate via a DSL. The idea, I think, is to transform and manage the configuration files from a dynamic GUI system.

    tl;dr: If your main tool is a compiler, there are compiler problems everywhere.

  • jsparagus

    Experimental JS parser-generator project.

  • "attribute grammar" and "novel" in the same statement? Whoa! I tried to publish a paper ~15 years ago on attribute grammars … without success and non-constructive review feedback. I am not aware of any company making use of attribute grammars in production. I had the goal of making use of attribute grammars as part of https://github.com/mozilla-spidermonkey/jsparagus (SmooshMonkey), but making a JavaScript parser generator which is as efficient as our hand-written parser is already surprisingly difficult, and the COVID ended the project.

    On the topic of finding a job … I would be of no help. The only internships/jobs I found so far were all outside the usual applications forms:

  • CompilerJobs

    A listing of compiler, language and runtime teams for people looking for jobs in this area

  • There is a list of companies doing compiler work here: https://github.com/mgaudet/CompilerJobs . I would recommend surveying the ones that have openings, gathering the listed knowledge requirements, choosing the ones that come up most often and then learning that.

  • circt

    Circuit IR Compilers and Tools

  • MLIR (https://mlir.llvm.org/) is a quickly growing compiler toolkit which attempts to synthesize the learnings of LLVM and currently powers compilers for programming languages, machine learning and circuit design (https://github.com/llvm/circt). and there are a ton of companies with real employees working on it (including Microsoft) and MLIR is at the core of Chris Lattner’s new company, ModularAI. I’d recommend taking a look at it, there are a large number of ways to get involved and a number of paths from contributor to employee.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Elm 2023, a year in review

    2 projects | dev.to | 15 Apr 2024
  • 2024 Web Development Wish List

    7 projects | dev.to | 10 Jan 2024
  • Getting Amazonka S3 to work with localstack

    2 projects | /r/haskell | 9 Dec 2023
  • Haskell, Ada, C++, Awk: An Experiment in Prototyping Productivity (1994) [pdf]

    5 projects | news.ycombinator.com | 10 Dec 2022
  • 2022 State of Haskell Survey

    6 projects | news.ycombinator.com | 3 Nov 2022