CertiK logo

Software Engineer (Formal Methods)

CertiK

On-siteNew York City, NYmid$115k–$230kPosted 9h ago

Job description

  • 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

  • Work on all aspects of delivering working software that meets customer needs, including analysis, design, automated testing, operations, CI/CD, measuring results, incorporating customer feedback, and support

Benefits

  • 401(k) plan with company matching

  • Flexible paid time off and holidays

  • HSA (with high deductible plan) & FSA

  • Life and accidental death and dismemberment insurance

  • Medical, vision, and dental insurance- Minimum of 4 years of software development experience (includes internships, software developed during research, and open-source development)

  • Master’s Degree in Computer Science or a related field or 5 years of equivalent experience

  • Demonstrated knowledge of fundamental computer science concepts such as data structures, algorithms, mathematical logic, and automata theory

  • Minimum of 2 years of experience with one or more of the following: model checking, formal verification, SAT/SMT solving (Z3, CVC4, Yices, MathSAT, SMTInterpol), abstract interpretation, or closely related disciplines

  • PhD in the broader field of automated reasoning

  • Publication record in conferences like POPL, CAV, TACAS, FMCAD, FM, etc

  • Experience in functional programming (OCaml or Haskell)

  • Strong and creative problem-solving skills; always willing to learn and embrace new technologies and to collaborate

  • Prior experience in a professional software development environment