Applied Compiler Engineer
About Heliax
The systems of coordination and finance in our world today are not private, secure, or resilient enough for safe use by citizens, corporations, or dissidents. Heliax works on the distributed operating system Anoma which is designed to provide a robust base layer for human coordination.
About the Juvix project
Juvix is a pure, functional, strongly typed programming language, in which Anoma applications are written. The Juvix compiler - implemented in Haskell - is a central component of the Anoma stack, responsible for compiling programs written in the Juvix language to various backends, including Nock, Cairo, and RISCV. Heliax is looking for an applied compiler engineer interested in helping us quickly, safely, and performantly implement and improve the Juvix compiler, and design, implement, test, and refine applications in the Juvix language.
This role offers the chance to work closely with experts and researchers in various domains. From cryptography to programming language theory, a good sample of the work we do can be found on our Anoma Research Topics page. The job of Anoma engineering is often to help synthesise ideas found in research into an integrated system. In practice, this means that the role will include giving feedback to researchers about their designs, shaping their research to help fit an integrated system, and ultimately implementing the ideas.
Responsibilities
- Work in the Juvix compiler codebase – adding features, improving performance, fixing bugs, keeping the architecture clean, etc.
- Program in Haskell to facilitate interoperability between intermediate programming language representations used by Juvix
- Develop applications in Juvix based on high-level designs. Evaluate algorithmic complexity and implementation difficulty of new applications, giving feedback to researchers and organisational leadership.
- Develop and maintain developer tooling for Juvix (VScode plugin, html generation, markdown support, package manager, etc.)
- Write documentation for the Juvix language and applications
Required qualifications
- Proficient in a typed functional programming language: Haskell (preferable), OCaml, Scala…
- Working hours should include 10 - 17 CET.
- Ability to work independently and reliably without extensive supervision.
- Good communication and collaboration skills; experience working with both engineers and researchers.
Nice to have
- Experience with remote work
- Experience with small-team leadership
- Experience with dependently typed proof assistants (Lean, Rocq, Agda, Idris, etc.)
- Compiler implementation experience
- Knowledge of programming language theory
- Knowledge of type theory
- Familiar with Github CI
- Familiarity with large-scale distributed systems, network/systems engineering, blockchain technology, and/or database system design and optimization
Misc
- Must be willing to travel to Europe for initial onboarding, and several times a year for team retreats (these costs are covered by Heliax).
- Ideally someone who enjoys travel, nature, and hiking. Often we find that compilers are best designed not in a meeting room but rather on a trail.