Senior Interpreter Engineer

Luna is looking for a senior interpreter engineer to help build the next generation interpreter 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 interpreter, then this role could be the one for you.



As an interpreter engineer you'll work as part of the compiler team to design and implement the new Luna interpreter 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 interpreter developer, you'll be working on the design and development of the new Luna interpreter and runtime, to help support the Language's evolution. This will involve:



Working to design and implement the new Luna interpreter, including the optimiser, real-time introspection capabilities, and foreign-language interoperability.



Practical work improving the performance of the interpreter and the code that it executes by diagnosing performance issues and implementing improvements.



Practical work implementing front-end optimisations for Luna that improve the code that is executed by the interpreter.



Working on and improving the introspection capabilities that allow external programs to inspect and modify the interpreter's state (including support for debugging).



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 either Scala or Java (3+ years).



Experience building an interpreter for a programming language.



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, as well as in their ongoing evolution and maintenance.



It would be a big bonus if you had:



Experience with GraalVM and the Truffle framework for programming language development.



Experience using purely functional programming languages, such as Haskell.



Experience employing type-level programming techniques in functional programming languages.



Avoid the confidence gap. You don't have to match all of the skills above to apply!



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.



The Details

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 jobs@luna-lang.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: