Formal Methods Engineer - IOE: Cardano

New Today

Overview

IOG 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 IOE you will develop formal artifacts as early as possible in the development process; artifacts that grow with a project and continue to provide impact throughout its lifecycle. You will develop and iteratively refine specifications, including developing suitable properties and proofs to assure the production of high quality designs and prototypes. Your work will form part of the day-to-day quality assurance of production system development. In some projects, critical steps will be tested against formal models, 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 developers and to the project management. You will participate in knowledge sharing and continuous learning through interactions with Formal Methods Engineers across the company and more broadly with researchers and engineers as well.

  • Build formal artifacts from R&D and architectural guidance, and business and engineering requirements
  • Model the performance of formally specified systems
  • Produce prototypes and simulations
  • Refine specifications, using 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
  • Communicate with product, R&D, and developers, and act as a bridge between them; provide feedback on issues that arise when their work is incorporated into real world systems
  • Assist developers in understanding specifications and in turning them into production code
  • Report on work via blog posts, technical reports, presentations, workshops, conferences, and/or academic papers
  • Participate in code reviews
  • Contribute property-based tests for executable specifications/prototypes and for verifying production code against the executable specifications
  • Contribute to the implementation, extension, and maintenance of custom formal analysis tooling
  • Work in an international team across multiple time zones
  • Break down large tasks into workable items and work on them independently
  • Share specialized knowledge with other team members

Requirements

  • 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 work in — networking, consensus, distributed systems, programming language design, blockchain applications — would be a bonus
  • Demonstrated ability to work on difficult problems in a self-driven way
  • Deep thinking and problem solving
  • Ability to understand and translate complex ideas and break them down simply for yourself and others
  • General software engineering skills, and an understanding of software engineering processes: requirements capture, specification, testing, verification, validation
  • Apply research concepts in an engineering setting
  • Translate and reshape information for software engineers to understand properly
  • Communicate discrepancies when presenting formal concepts in context
  • Ability to receive input from researchers about formal models and translate that information and its impact on production code
  • Continuously bring fresh ideas to the mix
  • Be versatile and enjoy a fast-paced, ever-changing environment
  • Ability to explain complex concepts in documents and presentations for a technical but not specialist audience

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.

#J-18808-Ljbffr
Location:
United Kingdom
Salary:
£60,000 - £80,000
Job Type:
FullTime
Category:
Engineering