LLVM Compiler Engineer - remote

Anoma (Heliax)
Posted 2 years ago
We Work Remotely
Overview
Smart contracts are not secure enough for finance, law, or systems engineering.

Smart contracts are security-critical, performance-sensitive, and bug-prone. Heliax is working on a dependently-typed smart contract language, Juvix, which utilises recent advancements in type theory to allow developers to write code in a high-level functional language, compile it to WASM and/or to arithmetic circuits, and formally verify the safety of their contracts prior to deployment &execution. 

PLT at Heliax focuses on applying the latest research in type theory and programming language design to concrete problems in the distributed ledger space. We are looking for a functional compiler engineer to work on various parts of the Juvix stack, all the way from optimising inlining heuristics in the core compiler passes to using Juvix’s granular linearity information in order to write an efficient LLVM compilation backend. 

This role offers the chance to work closely with a small team on compelling cross-disciplinary problems in computer science, PLT, cryptography, and economics, and enjoy a high degree of independence in working conditions and prioritisation.


Responsibilities
  • Take responsibility for identifying and implementing features in the LLVM compiler
  • Produce formal specifications and implementation plans for new language features in collaboration with team members (and optionally submit to academic venues)
  • Evaluate correctness, suitability, and ease-of-implementation of published PLT and compiler engineering research for the Juvix architecture &project aims
  • Implement both in-house and published research in Haskell in the Juvix codebase in collaboration with team members
  • Conduct code reviews and help maintain a high standard of correctness and quality
  • Conduct benchmarks of Juvix output code and adjust both the compiler architecture and details of specific passes to optimise its performance while retaining correctness
  • Comprehensively document both design and implementation choices in the codebase, and assist in writing user-facing documentation for the Juvix language

Main Project

Qualifications
  • Prior experience in LLVM development
  • Prior experience in compiler development and design
  • Prior experience in a typed, functional programming such as Haskell, Idris, Agda, or Coq
  • Self-motivated &self-organised
  • Interested in open-source technology and research applied to DLT

Bonus Qualifications
  • Prior academic work in type theory, PLT, or compiler design
  • Prior academic work in cryptography, economics, or game theory
  • Familiarity with Rust

Misc
  • Remote or local (Zürich/Zug, Berlin). 
  • When remote, preferred if mostly located within (+/- 7 hours) Central European time zones. 
  • Ideally someone who enjoys nature and hiking 🏔️.