More jobs:
Formal Verification and Software Assurance Engineer
Job in
Laurel, Anne Arundel County, Maryland, 20724, USA
Listed on 2026-03-07
Listing for:
Johns Hopkins Applied Physics Lab
Full Time
position Listed on 2026-03-07
Job specializations:
-
Software Development
Software Engineer
Job Description & How to Apply Below
Description
Do 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.
- Analyze data and results related to system development. Show the benefits of using formal methods in system development as well as the positive effects of using analysis tools.
- Share knowledge by clearly articulating ideas through papers and presentations to technical staff, management and Government decision makers. Take advantage of opportunities to participate in working groups, sponsor meetings, proposal writing, and conferences.
- Join an environment that promotes professional growth, a balanced life, and encourages technical development.
- Have opportunities to participate in fun, social activities like our weekly game nights and yearly summer cookout!
You meet the minimum qualifications for this position if you have:
- A Master’s in Computer Science, Computer Engineering, Electrical Engineering, Applied Math, or another field relevant to the duties as described above.
- 2+ years of either professional experience or a combination of graduate research and experience with formal methods, software assurance, or related areas.
- Experience with formal methods tools and techniques, such as language safety properties, symbolic execution, abstract interpretation, model checking, automated and interactive theorem proving, programming language analysis and design, type theory, static source code analysis, and formal logic.
- Ability to understand code in a variety of programming languages, and be able to develop software to demonstrate new analysis capabilities.
- Interest in local limited travel, which may be required.
- Ability to obtain an Interim Top Secret level security clearance by your start date and can ultimately obtain a final Top Secret clearance. If selected, you will be subject to a government security clearance investigation and must meet the requirements for access to classified information. Eligibility requirements include U.S. citizenship.
- Demonstrate strong interpersonal skills and the ability to work independently and on a team.
- 5+ years of experience with static and dynamic analysis, formal methods, or related areas.
- Experience with the above, familiarity with operational semantics, abstract interpretation, symbolic execution, type inference.
- Experience with software development on Windows and Linux, using languages such as Rust, OCaml, C/C++, and Java.
- Experience with (1) Static Analysis tools such as Coverity and Klockwork, (2) Dynamic Analysis tools such as Valgrind, lib Fuzzer, and Java Pathfinder, (3) Symbolic Execution Engines such as…
To View & Apply for jobs on this site that accept applications from your location or country, tap the button below to make a Search.
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).
Search for further Jobs Here:
×