Senior Programming Language Compiler Developer (GraalVM / Truffle) at Enso
About the role
Hi, we are Enso (Y Combinator S21)! We are looking for a skilled GraalVM/Truffle interpreter developer to join our core team and help us develop the Enso JIT Polyglot Compiler. We are a remote first company, working in Europe and the USA.
What is Enso?
From the business perspective, Enso is a no-code interactive data analysis tool. It lets you load, blend, and analyze your data, and then automate the whole process, simply by connecting visual components together. Enso has the potential to disrupt the data analytics industry over the next five years. Currently, the market operates using old-fashioned, limited, and non-extensible software which has been unable to keep up with businesses as they transition to the cloud.
Who are we looking for?
Enso would be a great place for you if:
- You're an expert at writing language interpreters.
- You’re any race, color, religion, gender, national origin, political affiliation, sexual orientation, marital status, disability, age.
- You like to laugh.
- You want to work hard, have fun doing it, and own projects from end-to-end.
- You are friendly and like to collaborate.
- You move fast and ask for help when needed.
- You value being part of a team and a community.
- You can set your ego aside because you know that good ideas can come from anywhere.
- You enjoy working in public, putting yourself out there and showing your learning.
- You appreciate a competitive salary and significant stock options.
You’ll be responsible for designing and building the engine that executes Enso code. It includes a parser, a compiler that performs static analysis, a code generator, and a sophisticated interpreter for the language, all built on top of GraalVM. This will involve:
- Working closely with stakeholders and the IDE team to plan and implement enhancements to the Enso runtime environment and user experience.
- Working to allow seamless interoperability between Enso and other languages running on top of GraalVM.
- Implementing optimisations both in the Enso compiler and in the interpreter itself, ensuring that Enso retains its high performance.
- Debugging issues with Enso’s performance and semantics to ensure that the language remains easy to use for users.
- Designing and building extensions to the Enso standard libraries to ensure a truly “batteries included” experience.
We have a few particular skills that we're looking for in this role:
- A strong focus on user experience and performance.
- 3+ years commercial experience working on language runtimes, compilers, or interpreters.
- 3+ years experience writing both Java and Scala.
- Practical experience debugging performance issues with language runtimes, and with the JVM.
- A comprehensive understanding of the JVM and its performance behaviours, including its execution model and garbage collectors, born of practical experience.
As part of the hiring process for this job posting we're very interested in your previous work in these areas. Please link us to any experiments or previous projects that you have in these areas! It's important for us to understand your experience at the start of the hiring process. It would be a big bonus if you had:
- Experience with building interpreters using the Truffle framework on top of GraalVM.
- Experience building language-integrated tooling such as language servers and debuggers.
- Experience with visual programming systems such as Houdini, Max/MSP, LabVIEW or Touch Designer.
- Experience using and developing software in purely-functional programming language such as Haskell.
Avoid the confidence gap. You don't have to match all of the skills above to apply!
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 Enso, and where you imagine Enso 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.
Why you should join Enso
Enso (https://enso.org) is a no-code interactive ETL and data analysis tool. It lets you load, blend, analyze your data, and then automate the whole process, simply by connecting visual components together. At Enso, we have a world-class team, with developers, community managers, and business developers from all walks of life and backgrounds.