Software Engineer - Formal Methods
at Certik
New York, NY / Seattle, WA / San Francisco Bay Area, CA / Remote, remote, full time, USD 1,15,000–2,30,000 / year, 4+ years
posted 30 Jul 2022
- SMTInterpol
- Counterexample-guided abstraction refinement
- MathSAT
- SAT/SMT solving
- IC3/PDR
- Abstract interpretation
- Symbolic model checking
- Deductive verification
- Bounded model checking
- OCaml
- Yices
- CI/CD
- Z3
- Haskell
- CVC4
- Data flow analysis
- Property directed reachability
About the role
Software Engineer (Engineer III to Principal) - Formal Methods
Remote: yes Posted: 2022-07-30
Why us? Blockchain technology is enabling a rapidly-growing era of innovation for the digital world. It is crucial that blockchain code such as protocols and smart contracts are provably secure and correct. Once deployed, they are public and cannot be changed. Vulnerabilities and bugs in such programs regularly put millions of dollars at stake. This is where CertiK comes in. We are the leading blockchain security company. Our goal is to secure the cyber world by applying cutting edge techniques from academia to secure blockchain code. Come and join this ambitious mission as a research software engineer to work on automated analyses for provably secure and correct blockchain applications!
What you would do
You will design and develop tools that automatically ensure the correctness of smart contracts or identify security issues and bugs in smart contracts. We have software engineer positions available at all levels of seniority. Title and responsibilities will be commensurate with experience and background. As part of our multinational team of programming language experts, you will participate in the development of tools that rest upon techniques such as symbolic model checking, SAT/SMT solving, abstract interpretation, data flow analysis, and deductive verification. You will have the opportunity to work on all stages of tool development from idea generation to implementation and iterative improvements. Our team is highly supportive and collaborative with great opportunities to learn and grow.
- Extend the scope and depth of our automated program verification tools and brainstorm, design, and implement new tools.
- Adapt and improve algorithms for symbolic software model checking. Examples include bounded model checking (BMC), counterexample-guided abstraction refinement (CEGAR), and property directed reachability (IC3/PDR).
- Build and extend translators from different input languages into intermediate representations, optimizing the generated models for automated analysis.
- Identify new classes of security properties of smart contracts and formalize properties for use in our automated verification tools.
- Closely collaborate with other software engineers in developing tools and set technical direction for solving problems in consultation with your team and management.
Read from jobs.lever.co, last seen 3d ago.