Input Output is hiring a
Senior Formal Methods Engineer

Logo of Input Output

Input Output

πŸ’΅ ~$48k-$59k
πŸ“Remote - United Kingdom

Summary

The job is for a Senior Formal Methods Engineer at IOHK, a technology company specializing in blockchain research and development. The role involves bridging product, research, architecture, and development, developing formal artifacts, modeling system performance, producing prototypes and simulations, refining specifications, proving properties of specifications, communicating with researchers and developers, reporting on work, participating in code reviews, contributing property-based tests, and maintaining custom static analysis tooling.

Requirements

  • Higher degree in Computer Science or a related field
  • Minimum of 3-5 years of experience in a functional language, preferably Haskell
  • Experience working and collaborating with Git
  • Experience with one or more formal methods

Responsibilities

  • 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
  • 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
  • Communicate with both researchers and developers, and act as a bridge between the two: you will provide feedback to researchers about issues that come up when their work is incorporated into real world systems. You will assist developers in understanding your specifications and in turning them into production code
  • 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
  • Participate in code reviews
  • 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

Preferred Qualifications

Experience in one or more of the domains we are working in -- networking, distributed systems, programming language design, blockchain applications -- would be a bonus

Benefits

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

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.

Similar Jobs

Please let Input Output know you found this job on JobsCollider. Thanks! πŸ™