Match score not available

Formal Methods Engineer Verification

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

Offer summary

Qualifications:

Higher degree in Computer Science or related field, 2-3 years of experience in functional language, preferably Haskell, Experience with formal methods and Git, None.

Key responsabilities:

  • Develop formal artifacts based on requirements
  • Model performance and produce prototypes and simulations

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

Job description

As a Formal Methods Engineer at IO you act as a bridge between product,  research, 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 up to verification of source code. In some projects, critical steps, models, or the production code 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 and engineers. 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.

As a member of the Formal Methods team 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.

This role is targeted specifically at automated and interactive verification of source code. The initial targets will be smart contracts for Cardano and/or Midnight although the approach is general purpose.



Duties

  • Build formal artifacts from research 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
  • 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
  • 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
  • Share specialized knowledge with other team members

Requirements

Key Competencies 

  • Deep thinking, problem solving 
  • Ability to understand and translate complex ideas and break them down simply for yourself and others 
  • Software engineering skills
  • Bridge between research and engineers 
  • Translate and reshape information for the software engineers to understand properly 
  • Telling researchers when there is a discrepancy - feedback to research
  • Be able to receive input from researchers, thoroughly understand and translate information into final code 
  • Continuously brings fresh ideas to the mix
  • Be versatile and enjoy a fast-paced, ever-changing environment
  • Be a savvy problem solver
  • Ability to explain complex concepts in documents and presentations

Education / Experience

  • 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.
  • Demonstrated ability to work on difficult problems in a self-driven way
  • Experience with SAT/SMT
  • Experience with Model checking
  • Experience with interactive theorem proving
  • Experience with using Lean or a similar tool
  • Experience with building formal methods tools is a plus.
  • Domain experience with smart contracts is a plus.

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.

US Benefits:

Medical, Dental, and Vision benefits coverage through for the employee and dependents

401k

Health Savings Account

Life Insurance

Laptop reimbursement

New starter package to buy hardware essentials (headphones, monitor, etc)

Learning & Development opportunities

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

  • Critical Thinking
  • Communication
  • Problem Solving

Related jobs