Luna is looking for a senior compiler engineer to help build the next generation compiler and runtime for Luna, a project said by Singularity University to have the potential to change the lives of one-billion people. 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 to design and implement the new Luna interpreter, including the typechecker, optimiser, and foreign-language interoperability.
Theoretical and practical treatments of the theory behind Luna’s type-system, and the implementation of the type inference and type checking engines for the same.
Practical work improving both the performance and capabilities of the new interpreter.
Practical work implementing front-end optimisations for Luna that improve the code that is executed by the interpreter.
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 both Scala and Java, including experience with type-level programming techniques in the former (3+ years).
A deep understanding of the JVM, its execution model, and garbage collection behaviours, born of practical experience.
Experience using the JVM’s profiling and debugging tools to solve problems on large-scale projects.
Practical experience building large and complex software systems.
Experience in building compilers and/or the design of type systems.
It would be a big bonus if you had:
Experience with GraalVM and the Truffle framework for programming language development.
Experience with dependent type systems, row types, type-checking algorithms, and type-inference.
Luna is an award-winning general-purpose programming language and data-science platform, selected by NASA and Singularity University as a technology with the potential to impact the lives of one-billion people worldwide. It spans the entire stack, from high-level visualisation and communication, to the nitty-gritty of running backend services in a single language. With inbuilt capabilities for visualisation and a dual-syntax architecture, the possibilities are limitless.
At Luna, we have a world-class team, with developers, community managers, and business developers from all walks of life and backgrounds, and work in close collaboration with industry advisers such as Robert Gentleman, the creator of the R programming language and computational biologist at 23andMe, and Edward Kmett, a skilled language designer and machine intelligence researcher at MIRI.
We welcome anybody to our team, as long as you have the desire and drive to see Luna succeed.
Who You’ll Work With
You’ll be joining a distributed, multi-disciplinary team that includes people with skills spanning from compiler development to data-science. Though you’ll have your area to work on, our internal culture is one of collaboration and communication, and input is always welcomed.
We firmly believe that only by working together, rather than putting our team members in their own boxes, can we create the best version of Luna that can be.
As part of the Luna team you’d be able to work from anywhere, whether that be at home, or on the go! We have team members distributed across the world, from San Francisco, to London, to Kraków. We welcome remote work and flexible schedules, or you can work from the Kraków office (or our planned SF office) if you’d like. We can provide competitive compensation and holiday, as well as the possibility of equity as time goes on.
How To Apply?
Send us an email at firstname.lastname@example.org, and tell us a little bit about yourself and why you think you’d be a good fit for the role! You can also tell us about:
Some of your past work or projects.
Why you’d like to work on Luna, and where you imagine Luna being in 5 years.
The most important features of a team that you’d like to work in.
Whether you take pride in your ability to communicate clearly and efficiently with your team.