Headquarters: Berlin, Germany
URL: https://heliax.dev
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 .