-
codeql
CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security
-
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.
-
Hasura
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
-
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.
-
CompilerJobs
A listing of compiler, language and runtime teams for people looking for jobs in this area
-
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.
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
> 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.
> 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.
> 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.
"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:
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.
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.