At a Glance
- Tasks: Develop and enhance automated program verification tools while collaborating with a dynamic team.
- Company: Join a forward-thinking tech company focused on innovative software solutions.
- Benefits: Enjoy flexible time off, competitive salary, and comprehensive health insurance.
- Other info: Great opportunities for growth and learning in a collaborative environment.
- Why this job: Make a real impact in the world of software verification and security.
- Qualifications: 4+ years in software development with a Master's or equivalent experience required.
The predicted salary is between 51750 - 63250 £ per year.
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
Qualifications:
- 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
Software Engineer (Formal Methods) employer: CertiK
As a Software Engineer (Formal Methods) at our company, you will be part of a dynamic and innovative team dedicated to advancing automated program verification tools. We offer a collaborative work culture that encourages creativity and continuous learning, alongside competitive benefits such as flexible paid time off, comprehensive health insurance, and a 401(k) plan with company matching. Located in a vibrant tech hub, we provide ample opportunities for professional growth and the chance to work on cutting-edge projects that make a real impact in the field of software development.
StudySmarter Expert Advice🤫
We think this is how you could land Software Engineer (Formal Methods)
✨Join Local Tech Meetups
Get out there and mingle with fellow developers by joining local tech meetups. It’s a fantastic way to meet people who might be working at CertiK or know someone who does. Plus, you can pick up some trendy tech skills and trends while you're at it!
✨Contribute to Open Source Projects
Show off your coding chops by jumping into open-source projects. Not only does this give you practical experience, but it also gets you noticed in the dev community. You'll create a killer portfolio that speaks volumes about your skills to CertiK.
✨Tap into Online Developer Communities
Don’t underestimate the power of online developer communities like GitHub, Stack Overflow, and even Reddit. Participate in discussions, share your projects, and build your visibility. We can often find opportunities through these channels that can lead to a full-time gig at companies like CertiK.
✨Explore Job Boards Specifically for Tech Roles
Keep your eyes peeled on job boards that focus on tech roles. Sites like TechCareers or Stack Overflow Jobs can often have listings for companies like CertiK that might not show up on broader job sites. Make it a habit to check these regularly, and don’t hesitate to apply directly through our website!
We think you need these skills to ace Software Engineer (Formal Methods)
Some tips for your application 🫡
Show off your coding skills:When applying for a software engineering role, it's super important to showcase your coding skills. Make sure your CV includes your tech stack, any relevant programming languages you’re comfortable with, and examples of projects you've worked on. If you have a GitHub profile, link it up! We love to see code in action.
Tailor your portfolio:For a full-time role, we’d expect to see some solid examples of your work in your portfolio. Make sure to include at least two or three projects that highlight your problem-solving skills and your ability to work with different technologies. Focus on the projects that are most relevant to the position at CertiK.
Craft a killer cover letter:Your cover letter is your chance to stand out—make it personal! Explain why you want to work at CertiK and how your skills align with the role. Show us your passion for software development. We dig enthusiastic candidates who understand the value of collaboration and continuous learning!
Be clear and concise:When it comes to writing your CV and cover letter, clarity is key. Avoid jargon that could confuse us and stick to simple, direct language. Highlight your achievements with quantifiable results where possible, and keep everything easy to read. A well-organised application goes a long way!
How to prepare for a job interview at CertiK
✨Brush Up on Your Coding Skills
For a full-time software engineering role, it's crucial that we stay sharp with our coding abilities. Expect technical questions that might involve solving problems on the spot or discussing algorithms. Practise on platforms like LeetCode or HackerRank to get comfortable with the types of questions that often come up.
✨Know Your Tools and Frameworks
Make sure we’re well-acquainted with the tools and technologies listed in the job description. Familiarise ourselves with any specific frameworks or programming languages mentioned. If CertiK uses React or Node.js, for instance, be ready to discuss how we’ve used them in previous projects or coursework.
✨Showcase Your Projects
Bring along a portfolio that highlights our best work. This could be code samples, GitHub repositories, or any side projects we’ve built. Make sure we can talk through our thought process for each project, especially the challenges we faced and how we solved them—this shows our problem-solving skills in action.
✨Prepare for Behavioural Questions
While technical skills are key, full-time positions also require cultural fit. Be ready to discuss our previous experiences and how we handle teamwork, conflict, and deadlines. Brush up on the STAR method—Situation, Task, Action, Result—to clearly articulate our past experiences when discussing how we've contributed to a team.