Remote | International
Input Output HK - IOHK

Software Engineer (Financial Contracts)

Location: Remote

FULL-TIME

ALLOWS REMOTE

In 2015 IOHK founders, Charles Hoskinson and Jeremy Wood, set out to cause cascading disruption, committed to using peer-to-peer innovations to provide financial services to the three billion people who don’t have them. They knew back then that they had to first create a place that was designed to enable such unprecedented ambition. A place where incredibly talented individuals are actually empowered to put their best work into the hands of millions of people to build on and explore new ways of working together. As IOHK continues to grow, we hope that these principles will serve each new person joining our ranks.

Each and every role in our business is of equal importance to us. To that end we are searching for individuals across all functions who display strong analytical skills and are constantly seeking to learn new technologies and solve complex problems. As a distributed team advanced communication skills and the ability to integrate seamlessly as a team member across different areas of the organisation is essential; as is resourcefulness and self motivation. Our people are curious and passionate about their work and we encourage an inclusive and collaborative environment where we support each other in knowledge sharing and personal growth. As a distribute team we use a variety of online communication on a daily basis and keep connected via Trello, Slack, GitHub, Hangouts.

Summary

As Software Engineer at IOHK, you will be responsible for implementing smart contracts using the IOHK blockchain framework, in particular using Marlowe (a DSL for financial contracts) and Plutus (functional scripting language on the Cardano blockchain). You will be a talented software engineer with strong functional programming skills and experience to join our growing in-house team.

You will work closely with our Programming Language Theory (PLT) 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 and DSLs into our blockchain technology. You will play a key role in Project Goguen and be responsible for design and implementation in Cardano of financial contracts from the ACTUS standard using smart scripting languages and DSLs for smart contracts. This will ultimately allow third parties to independently develop, deploy, and execute smart contracts on the Cardano platform; a major milestone in the evolution of the technology.

Duties:

  • Working closely with a global base of respected researchers, product management, and development teams to understand and implement financial contracts using smart scripting languages and DSLs.
  • Working with the Marlowe team, reflect on the design of Marlowe and support its evolution and further development.
  • Work in collaboration with external stakeholders, including the ACTUS team.
  • Design and create code, tests, supporting documentation and teaching materials for face-to-face and online presentation.
  • Work with Subject Matter Experts (SMEs) to develop features to meet the needs of particular industry verticals.

Key Competencies:

Skills:

  • Excellent interpersonal skills.
  • Ability to work autonomously with minimal supervision.
  • Attention to detail.

Knowledge:

  • Program development in a strongly typed functional programing language.
  • Programming analysis and tools.
  • Design and use of domain specific languages (DSLs) would be a bonus.
  • Some knowledge of the financial sector would be an advantage.

Behaviour:

  • Show resourcefulness across role
  • Take initiative in role in order to reach best solutions and work well with colleagues

Job Complexity:

  • Exercises judgment in selecting methods, techniques and evaluation criteria for obtaining results.
  • Networks with key contacts outside own area of expertise.

Education / Experience:

  • At least 3 years of Haskell software development experience is required for this role (or comparable FP language experience; for example, in OCaml, Scala or PureScript).
  • At least 2 years’ programming experience within the financial sector, or comparable skills or experience in another sector.
  • Experience of working in the financial sector would be an advantage.