CertiK logo - Software Engineer (Engineer III to Principal) -  Formal Methods

    Software Engineer (Engineer III to Principal) - Formal Methods

    CertiK
    Remote
    Full-time
    Engineering
    Remote
    Apply Now

    Job Description

    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 will 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.

    About you You have a background in programming language theory and automated reasoning and love to work on the forefront of applying results from theoretical computer science. You love to tackle computationally hard problems and have a proven track record of achieving results, where results are people using your tool to do their jobs. You are collaborative: you share ideas, love to brainstorm with peers, and give and receive feedback. You are comfortable with the unknown and understand that #startuplife means that you will be wearing multiple hats.

    Requirements

    Responsibilities 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. Required Qualifications Master's Degree in Computer Science or a related field or 5 years of equivalent experience. Minimum of 4 years of software development experience (includes internships, software developed during research, and open-source development). 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.  Demonstrated knowledge of fundamental computer science concepts such as data structures, algorithms, mathematical logic, and automata theory. Preferred Qualifications 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.

    About CertiK

    CertiK is a pioneer in securing the Web3 landscape, leveraging cutting-edge formal verification technology and AI to audit and monitor blockchain protocols and smart contracts. Our mission is to raise the security standards of the decentralized world, protecting billions of dollars in digital assets from vulnerabilities and malicious actors. We are at the forefront of blockchain security, ensuring trust and transparency across the crypto ecosystem for projects ranging from DeFi and NFTs to Layer 1s. Our culture thrives on innovation, precision, and a shared passion for a safer Web3. We foster an environment where challenges are met with collaborative problem-solving, and continuous learning is encouraged. Team members are empowered to shape the future of blockchain security, working alongside world-class experts in cryptography, cybersecurity, and artificial intelligence. We value intellectual curiosity, rigorous analysis, and a commitment to excellence in all that we do. Joining CertiK means becoming an integral part of a global team that is truly making an impact. You'll contribute to groundbreaking security solutions, protect the integrity of decentralized finance, and help build a more secure digital future. If you're a talented individual passionate about blockchain, cybersecurity, and making a tangible difference in the Web3 space, we invite you to explore our opportunities and help us secure the next generation of the internet.

    Ready to Apply?

    To submit your application for this position, please visit CertiK's official website and follow their application process.

    Related Engineering Jobs