Formal Verification and Software Assurance Engineer
Johns Hopkins APL · Laurel, MD · Software Engineering
About this role
Johns Hopkins APL is hiring a mid-level Hardware Engineer in the software engineering function based in Laurel, MD. The posting calls out experience with Java, Rust, C, Linux and roughly 2+ years of relevant work. Listed education preference: a master's degree or equivalent.
- Role
- Hardware Engineer
- Function
- software engineering
- Level
- mid
- Track
- Individual contributor
- Location
- Laurel, MD
- Experience
- 2+ years
- Education
- Master's degree
- Department
- Software Engineering
- Posted
- Mar 4, 2026
More roles at Johns Hopkins APL
Job description
from Johns Hopkins APL careersDo you have experience conducting formal verification with formal methods for system and software assurance?
Are you passionate about making meaningful contributions that impact national security systems?
Do you work best in an intellectually stimulating, professionally rewarding, and fun environment?
If so, we 're looking for someone like you to join our APL team.
We are seeking a motivated and creative Software Assurance/Formal Methods Developer who will...
- Solve problems to improve software assurance using static and dynamic analysis, language safety properties, symbolic execution, abstract interpretation, model checking, and automated and interactive theorem provers to tackle the nation's most pressing cyber security challenges.
- Explore techniques to support development of zero-defect software and systems.
- Work on research teams staffed with world-class experts to perform research and development improving the state-of-the-art in software assurance theory and practice.
- Work alongside engineers and scientists who are passionate about innovation and are driven to make a real difference in defending our nation.
- Participate in research projects that create and apply formal methods tools and techniques to real-world problems. Goals include formal verification of algorithms, improvement of code quality, elimination of software bugs and design flaws, formal specification description, and analysis of cyber-physical systems.
- Devise and develop algorithms, techniques, and new tools that implement and test your ideas for improving critical systems and more reliable reasoning under uncertainty.