Luna is looking for a senior compiler engineer to help build the next generation compiler and runtime for Luna, a project said by NASA and Singularity University to be 1 of 20 most impressive technologies worldwide. If you have strong technical skills and a passion for all things compiler, then this role could be the one for you.
As a compiler engineer, you'll work as part of the compiler team to design and implement the new Luna compiler and runtime, work that is at the very core of the next phase of Luna's development. You'll have the opportunity to collaborate with a world-class team of engineers, community managers, and business developers (with experience at Bloomberg, GitHub, and PayPal, to name a few), and make your indelible mark on the future of Luna.
What You'll Do
As a senior compiler developer, you'll be working on the design and development of the new Luna compiler and runtime, to help support the Language's evolution. This will involve:
Working on the design and implementation of the new portions of the compiler.
Both practical and theoretical work on improving Luna's type-system.
Practical work improving both the performance of the compiler and its capabilities.
Work on pass-based optimizations to improve the performance of Luna itself.
Work on developing the new Luna runtime, including the JIT compiler, base on the infrastructure provided by GHC (the Glasgow Haskell Compiler).
Designing and developing mechanisms for foreign language interoperability, to allow users to seamlessly integrate Luna with other languages in their stack.
The Skills We're Looking For
We have a few particular skills that we're looking for in this role:
Practical and rich experience writing code in Haskell, including use of many GHC Language Extensions, commonly used to enable type-level programming, such as -XTypeFamilies, -XTypeApplications, and -XTypeInType (3+ years).
Experience reasoning about and debugging performance issues in Haskell code.
Practical experience building large and complex software systems.
Experience in building compilers or the design of type-systems.
It would be a big bonus if you had:
Familiarity with the GHC Core language, and the GHC pipeline.
Experience with dependent type systems, row types, type-checking algorithms, and type-inference.
Familiarity with LLVM and its architecture.