Do you have experience solving problems with formal methods and/or static analysis for software assurance?
Are you interested in making critical contributions that impact national security systems?
Are you interested in working in an intellectually stimulating, professionally rewarding, and fun environment?
If so, this is the perfect opportunity for you.
As a Software Assurance Formal Methods Analyst, you will...
- Solve problems using software assurance, static analysis, and/or formal methods to tackle the nation's most pressing cyber security challenges.
- 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 static analysis and formal methods tools and techniques to real-world problems. Goals include formal verification of algorithms; improvement of the quality of code being analyzed; elimination of software bugs and design flaws.
- Devise and develop algorithms, techniques, and new tools for improving software assurance.
- Analyze data and results related to software assurance. Show the benefits of using static analysis and formal methods in software development; analysis of the effects of using analysis tools is critical to showing their usefulness.
- 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.
You meet the minimum qualifications for this position if you have:
- BS in Computer Science, Computer Engineering, Electrical Engineering, or related field
- 4+ years of either professional experience or a combination of graduate research and experience with static analysis, formal methods, or related areas.
- Experience with static analysis and/or formal methods tools and techniques, such as model checking, theorem proving, programming language analysis and design, type theory, static source code analysis, and formal logic.
- Able to understand code in a variety of programming languages, and be able to develop software to demonstrate new analysis capabilities.
- Local limited travel may be required.
- Ability to obtain a Secret level security 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.
You'll go above and beyond our minimum requirements if you have:
- MS/PhD in Computer Science, Computer Engineering, Electrical Engineering, or related field
- 7+ years of experience with static 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 Linux, using languages such as OCaml, C/C++, Java, and tools such as Coq and ACL2.
- Experience writing published papers and presenting results to conferences/workshops.
- Familiarity with information security concepts.
- Interest in improving software assurance to help reduce vulnerabilities and improve computer security.
- Current DoD clearance and prior experience working with Government agencies.