Software Engineer (Engineer III to Principal) - Formal Methods
** Why Us?**
In a world witnessing tremendous innovation fueled by blockchain technology, ensuring the security and correctness of blockchain code, including protocols and smart contracts, is paramount. CertiK, a leading blockchain security company, is dedicated to securing the digital space by leveraging cutting-edge academic techniques to safeguard blockchain code. Join us in our mission to develop automated analyses for provably secure and correct blockchain applications.
What You Will Do
As a Research Software Engineer at CertiK, you will be responsible for designing and implementing tools that autonomously verify the accuracy of smart contracts and detect security vulnerabilities and bugs in them. Various positions are available at different seniority levels, with titles and responsibilities aligned with experience and background.
Working alongside a diverse team of programming language experts, you will contribute to the creation of tools based on techniques like symbolic model checking, SAT/SMT solving, abstract interpretation, data flow analysis, and deductive verification. You will engage in all aspects of tool development, from conception to enhancements, in a collaborative and supportive environment that encourages continuous learning and professional growth.
About You
You possess a background in programming language theory and automated reasoning and thrive on applying theoretical computer science outcomes to practical solutions. You excel in solving complex computational challenges and have a history of delivering impactful results that enhance user workflows. Collaboration is key to you, as you enjoy exchanging ideas, engaging in group brainstorming, and providing and receiving constructive feedback. You are adaptable and understand the dynamic nature of a startup environment, where versatility is essential.
Responsibilities
- Enhance automated program verification tools and foster the development of new tools
- Refine algorithms for symbolic software model checking, such as BMC, CEGAR, and IC3/PDR
- Develop translators for diverse input languages into optimized models for automated analysis
- Define new security properties for smart contracts and integrate them into verification tools
- Collaborate closely with software engineers to drive tool development and problem-solving efforts
- Engage in the complete software lifecycle, including analysis, design, testing, operations, and customer support
Required Qualifications
- Master's Degree in Computer Science or equivalent experience
- Minimum of 4 years of software development experience
- At least 2 years of experience in model checking, formal verification, SAT/SMT solving, or related fields
- Proficiency in fundamental computer science concepts
Preferred Qualifications
- Ph.D. in automated reasoning or related discipline
- Record of publications in conferences like POPL, CAV, and TACAS
- Familiarity with functional programming languages like OCaml or Haskell
- Strong problem-solving skills and a willingness to learn and collaborate
- Previous experience in a professional software development setting
About the Company
Established in 2018 by Yale University and Columbia University professors, CertiK is a pioneer in blockchain security, utilizing advanced technology to safeguard blockchain protocols and smart contracts. With a commitment to enhancing security across the digital realm, CertiK integrates cutting-edge academic innovations into enterprise solutions, enabling the development of secure and accurate mission-critical applications.
Compensation
The targeted annual base salary for this role in the U.S. ranges from $115,000 to $230,000. The actual salary offered will depend on the candidate's skills and background.
At CertiK, full-time employees receive comprehensive benefits, including medical, vision, and dental insurance, a 401(k) plan with company matching, life insurance, and flexible paid time off. The company also offers a variable commission program for certain roles.
CertiK adheres to federal employment regulations and maintains a commitment to equal opportunity employment, welcoming applicants without bias based on various characteristics.
All CertiK team members are encouraged to actively promote diversity within their teams and the organization as a whole.