Match score not available

Formal Methods Engineer (Djed) - IOE: Cardano

extra holidays - work from anywhere - fully flexible
Remote: 
Full Remote
Experience: 
Mid-level (2-5 years)
Work from: 

Input Output (IOHK) logo
Input Output (IOHK) Information Technology & Services Scaleup https://iohk.io/
201 - 500 Employees
See all jobs

Job description

Who are we?

IOHK, is a technology company focused on Blockchain research and development. We are renowned for our scientific approach to blockchain development, emphasizing peer-reviewed research and formal methods to ensure security, scalability, and sustainability. Our projects include decentralized finance (DeFi), governance, and identity management, aiming to advance the capabilities and adoption of blockchain technology globally.

We invest in the unknown, applying our curiosity and desire for positive change to everything we do. By fueling creativity, innovation, and progress within our teams, our products and services are designed for people to be fearless, to be changemakers.

What the role involves:

As a Formal Methods Engineer at IO Engineering you act as a bridge between product,  research & development, architecture, and development. You will develop formal artifacts as early as possible in the development process that grow with the project and continue to provide impact throughout into the late stages. You will develop and iteratively refine specifications, working towards high quality designs, prototypes and practical implementations. Your work will form part of the day-to-day quality assurance of production system development. In some projects, critical steps will be tested, or proven using appropriate formal frameworks and tools. In other projects, the expected performance of the resulting system will be modeled, so that the impact of design decisions on performance and stability can be assessed early on. Based on this process, you will provide feedback to the researchers. Finally, based on their specifications, designs, simulations and/or prototypes, you will advise and assist other development teams to implement and integrate their work into production systems.

In this role, you will be instrumental in ensuring the safety and security of our smart contracts. Key responsibilities include:

  • Writing Plutus smart contract requirements
  • Performing safety and threat analyses on specifications
  • Designing and reviewing tests to verify compliance between smart contract implementations and their specifications
  • Contributing to formal proofs that confirm adherence of implementations to defined properties, guaranteeing correctness and reliability.
  • Build formal artifacts from research & development and architectural guidance, and business and engineering requirements.
  • Model the performance of formally specified systems.
  • Produce prototypes and simulations.
  • Refine specifications, using the performance models and simulations to gauge the impact of design decisions during refinements.
  • Discover new properties about the specifications and their implications.
  • Prove properties of the specifications and of the correctness of refinement steps.
  • Act as a bridge between researchers & development and developers by translating formal specifications into real-world applications, providing feedback on challenges encountered in implementation.
  • Contribute to team-wide knowledge sharing through documentation, technical discussions, and mentorship, ensuring a strong understanding of formal methods across engineering teams.
  • Engage in ongoing learning and collaboration with internal teams and external research communities to drive innovation in formal verification and compliance.
  • Report on your work, in the form of blog posts, technical report documents, presentations at internal seminars, as well as at workshops and conferences, and/or by contributing to academic papers.
  • Contribute property-based tests, both for testing properties of the executable specifications/prototypes, and for verifying production code against the executable specifications.
  • Contribute to the implementation, extension, and maintenance of custom static analysis tooling.
  • Work in an international team across multiple time zones.
  • Break down large and complex tasks assigned to you into workable items, and work on them independently.

Requirements

Who you are:

  • A higher degree in Computer Science or a related field
  • A minimum of 2-3 years of experience in a functional language, preferably Haskell
  • Experience working and collaborating with Git
  • Experience with one or more formal methods 
  • Experience in one or more of the domains we are working in -- networking, distributed systems, programming language design, blockchain applications -- would be a bonus.
  • Ability to define and refine requirements for Plutus smart contracts with precision and clarity.
  • Proficiency in conducting safety and threat analyses to identify potential failure modes and propose effective mitigation strategies.
  • Competence in identifying and addressing attack vectors with appropriate security measures or justifying their improbability.
  • Expertise in defining formally provable or testable properties to prevent identified failure modes.
  • Strong capability in reviewing Plutus smart contract implementations (PlutusTx or Plutarch) and ensuring conformance to safety, liveness, and security properties.
  • Ability to verify the correctness and security of both imported and internally developed Plutus libraries.
  • Experience in contributing to the creation and maintenance of formal models demonstrating correctness.
  • Skill in working cross-functionally with developers, system engineers, and domain experts to integrate formal methods into the development lifecycle.
  • Ability to mentor junior engineers in the application of formal methods and best practices.
  • Proficiency in communicating complex formal concepts effectively to both technical and non-technical stakeholders.
  • Strong documentation skills for maintaining comprehensive records of formal verification processes, findings, and results.
  • Demonstrated ability to work on difficult problems in a self-driven way.
  • Understanding of Plutus smart contracts and the Cardano blockchain.
  • Strong understanding of safety and threat analysis methodologies.
  • Ability to identify and mitigate security vulnerabilities in smart contracts.
  • Experience with Plutus, Haskell, and formal verification techniques.
  • Strong knowledge of formal methods, security analysis, and property-based testing.
  • Deep thinking, problem solving and analytical skills. 
  • Ability to translate complex research concepts into clear, structured formats for engineering teams.
  • Ability to identify discrepancies in research and provide constructive feedback to refine specifications.
  • Deep understanding of theoretical inputs with the ability to convert them into practical implementations.
  • Be versatile and enjoy a fast-paced, ever-changing environment.
  • Be a savvy problem solver.
  • Ability to explain complex concepts in documents and presentations.

Are you an IOGer?

Do you find yourself questioning the status quo? Do you tinker with ideas and long to turn those ideas into solutions? Are you able to spark thoughtful debates, bringing out the inquisitiveness in others? Does the promise of continuously growing excite you? Then get ready to reimagine everything you thought wasn’t possible because that’s what it means to be an IOGer - we don’t set limits, we break them. 

Benefits

  • Remote work
  • Laptop reimbursement
  • New starter package to buy hardware essentials (headphones, monitor, etc)
  • Learning & Development opportunities
  • Competitive PTO 

At IOG, we value diversity and always treat all employees and job applicants based on merit, qualifications, competence, and talent. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.

Required profile

Experience

Level of experience: Mid-level (2-5 years)
Industry :
Information Technology & Services
Spoken language(s):
English
Check out the description to know which languages are mandatory.

Other Skills

  • Teamwork
  • Communication
  • Problem Solving

Solution Engineer Related jobs