Formal Methods Engineer - XSY
IO Global
- United Kingdom
- Permanent
- Full-time
- Assist in writing Plutus smart contract requirements.
- Perform safety and threat analysis on specifications.
- Identify all potential failure modes and ensure that they are properly covered by appropriate mitigations.
- Ensure that at least one property (i.e., to be formally proved or tested), establishing the non-occurrence of an identified failure mode, has been specified.
- Ensure that all identified attack vectors are offset by appropriate security mitigations unless justifications about the unlikelihood of the attacks are clearly stated.
- Perform code review of Plutus smart contract implementation in either PlutusTx or Plutarch.
- Write property-based testing to demonstrate conformity of implementation with the specification.
- Ensure the correctness of Plutus libraries (both imported or implemented).
- Participate in the elaboration/maintenance of formal models showing correctness of specifications.
- Collaborate with software architects and engineers to analyze and refine software requirements, ensuring they are clear, complete, and verifiable.
- Collaborate with cross-functional teams, including software developers, system engineers, and domain experts, to ensure the successful application of formal methods.
- Provide guidance and mentorship to junior engineers and team members in the application of formal methods.
- Maintain detailed documentation of formal methods, processes, findings, and verification results.
- Effective communication skills, including the ability to explain complex formal concepts and findings to both technical and non-technical stakeholders.
- Understanding of Plutus smart contracts and the Cardano blockchain.
- Proven experience in requirement elicitation.
- Strong understanding of safety and threat analysis methodologies.
- Strong critical thinking skills to challenge specifications.
- Ability to identify and mitigate security vulnerabilities.
- Experience with property-based testing.
- Excellent problem-solving and analytical skills.
- Strong communication and collaboration skills.
- Ability to communicate complex technical concepts effectively.
- Strong organizational and time management skills.
- Attention to detail and ability to work in a fast-paced environment.
- Degree in computer science, threat analysis, mathematics or a related field or equivalent experience.
- Proven experience in negotiating and challenging requirements and specifications using techniques such as safety and threat analysis.
- Strong experience in writing unambiguous and observable properties.
- Experience with functional programming languages, particularly Haskell.
- Experience in writing/analyzing Plutus smart contracts in either PlutusTx or PlutArch.
- Previous experience in blockchain and smart contracts security.
- Familiarity with formal verification techniques.
- Understanding of discrete mathematics and formal logics.
- Contributions to open-source projects related to blockchain technology.
- Experience with Github.
- Good understanding of QuickCheck and property-based testing.
- Advanced degree (Phd or Master’s) in computer science, threat analysis, mathematics or a related field.
- Experience in formal verification techniques such as symbolic model checking, SAT/SMT solvers and theorem proving.
- Experience in writing formal specifications of complex systems.
- Flexible schedule
- Remote work
- Laptop reimbursement
- New starter package to buy hardware essentials (headphones, monitor, etc)
- Learning & Development opportunities
- Competitive PTO
- Medical Benefits