BE THE CAUSE OF DISRUPTION
IOHK is a company focused on decentralization and disruption, and the people that enable us to do so are no exception either. With operations in Hong Kong, Japan and Eastern Europe, and employees and partners from Latvia, the Netherlands, Austria, France, Ukraine, Argentina and Brazil in addition to its multinational core members, IOHK is a truly global company despite its small, overall size and short history.
We not only aim to cause disruption with our technology, but also with the way we organize a group of talented and motivated people around the same vision and passion.
We are always looking for talented and motivated people to join our team, and more importantly to collaborate with. Our goal is to cause cascading disruptions and there are many ways to be a part of it. If you feel like you have something to contribute, whether directly to IOHK or one of its projects, please do not hesitate to contact us.
All openings > Functional Compiler Engineer
Functional Compiler Engineer
As a Functional Compiler Engineer at IOHK you will work closely with our programming language theory and cryptography researchers, our formal methods team, and our engineering team throughout the smart contracts development programme involving design, coding, testing and integrating of new smart scripting languages into our blockchain technology. This also includes the design and implementation of relevant domain specific languages (DSLs). You will have a strong understanding of programming language design, type systems, operational semantics, interpreters, and compiler implementation techniques.
- Work closely with a global base of respected researchers, product management, and development teams to understand business objectives for smart scripting languages and DSLs.
- Participate in research activities, such as researching novel approaches to languages-related problems, writing formal specifications and research papers, and presenting at workshops and conferences.
- Develop technical specifications for language-related tooling, libraries, DSLs.
- Design, implement, and maintain code modules, test scripts, and supporting documentation.
- Assist with performance and security-related testing of smart scripting languages and DSLs.
- Work with subject matter experts (SMEs) to develop features to meet the needs of particular industry verticals.
- Excellent interpersonal skills
- Ability to work autonomously with minimal supervision within and in collaboration with a group of peers
- Programing language design & implementations including frontends, type systems, program transformations, optimisations, and code generation.
- Human-Computer Interface (HCI) aspects of programming languages and DSLs, programmer tools and analysis a bonus.
- Networks with key contacts outside own area of expertise.
Education / Experience
- At least 2 years of Haskell software development experience (or comparable FP language experience; for example, in Ocaml or PureScript)
- At least 2 years experience of compiler design & implementation (or comparable experience with programming language-related tooling)
- Beneficial is generally relevant academic and/or professional experience with design and/or implementation programming languages, domain-specific languages or compilers.
- Or comparable skills or proven practical knowledge or experience.