Research Scientist – Formal Methods
Listed on 2026-09-20
-
Software Development
Software Engineer
Riverside Overview
Riverside Research is an independent National Security Nonprofit dedicated to research and development in the national interest. We provide high-end technical services, research and development, and prototype solutions to some of the country’s most challenging technical problems. All Riverside Research opportunities require U.S. Citizenship.
Position OverviewThe Secure and Resilient Systems group seeks a Research Scientist – Formal Methods to support research and development of cutting-edge formal methods applied to software systems. The Research Scientist will support a team that invents, prototypes, and evaluates new formal methods and software security approaches throughout the systems software stack.
Topics of interest for strong candidates may include theorem provers (e.g., Rocq, Lean, Isabelle), SMT solvers, programming language theory (e.g., type theory, operational semantics), functional programming, compilers (e.g., frontends, IR & optimization, backends), automated program analysis and software testing. Interest in systems software (e.g., operating systems including RTOS, hypervisors), computer architecture (e.g., tagged architectures), and peripheral hardware (e.g., custom device drivers, FPGA development, bus protocols) is a plus.
The role requires a strong background in computer science fundamentals (e.g., programming languages, algorithms, data structures, theory of computation), experience with software development practices for large projects (e.g., version control, debugging techniques), an understanding of the system software stack and the software/hardware interface (e.g., at least one ISA, assembly code), and propensity for the research process (e.g., breaking big problems down, designing experiments, analyzing data).
Responsibilities- Contribute to the design of innovative solutions to customer problems related to formal methods and systems software
- Prototype and evaluate features within large software projects such as LLVM or Comp Cert
- Build new tools and capabilities in a range of relevant programming languages
- Contribute to whitepapers/published papers that document innovative work performed
- Document and communicate design decisions, technical challenges, and progress to technical leadership
- Collaborate with team members on debugging programs, pair programming, reviewing papers/proposals, etc.
Required Qualifications
- Bachelor’s degree in computer science, computer engineering, electrical engineering, cybsersecurity, or a related field
- Ability to work collaboratively on speculative research projects
- Familiarity with formal methods
- Experience with functional and imperative programming, including C and assembly code
- Exposure to programming language concepts, definitions, and implementations (type systems, operational semantics, interpreters, compilers, etc.)
- Software development fundamentals for working inside a large project (e.g., submitting pull requests, git branches/merges/rebases, build systems, etc.)
- Communication and creative skills to develop, prototype, benchmark, and document significant security features integrated into existing systems security technologies
- Fluency in multiple programming languages, and strong fundamentals in algorithms and data structures
- Ability to obtain and maintain a U.S. government security clearance
Desired Qualifications
- Two years of experience with a Master’s degree or PhD in computer science or related field
- Formal methods experience with exposure to proof techniques (progress and preservation, logical relations, separation logic, refinement, translation validation, symbolic execution, etc.)
- Strong grasp of the research process (e.g., reading & writing academic papers, ideation for inventing solutions to hard…
(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).