Formal Methods Research Intern
Riverside Research
Overview
Posted
2 months, 3 weeks ago
Internship Type
Remote Status
Location
Lexington, MA, US
Education Level
Education Status
Field of Study
Categories
Skills
Tags
Not specified
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 Overview
Riverside Research’s Secure and Resilient Systems group seeks a Formal Methods Research Intern to support the specification and verification of systems-level software in Lexington, MA. This role offers the opportunity to work alongside a team of experienced computer scientists and cybersecurity professionals on cutting-edge research initiatives.
This position will focus on establishing meaningful cyber and systems security properties. Throughout the internship, you will gain hands-on experience with and develop a deep understanding of formal methods, building valuable skills in secure systems development.
Responsibilities
- Develop technical fluency in formal methods for cyber and system security
- Build specifications/proofs in proof assistants like Rocq and Lean
- Build tools/capabilities in programming languages like Rust and OCaml
- Document and communicate design decisions, technical challenges, and progress to technical program management
- Collaborate with team members on all aspects of formal methods research, identifying machine-checkable properties of interest, developing and applying tools to check such properties, verifying such tools, reviewing papers/proposals, etc.
Qualifications
Required Qualifications:
- Enrolled in an undergraduate or graduate program in Computer Science, Computer Security, Formal Methods, Automated Reasoning, or related major
- Ability to work collaboratively on speculative research projects
- Experience with functional and imperative programming
- Exposure to programming language concepts, definitions, and implementations (type systems, operational semantics, interpreters, compilers, etc.)
- Exposure to Linux or Unix-like systems
- Excellent written and verbal communication skills
Desired Qualifications:
- Experience with Rocq, Lean, or similar proof assistant
- Exposure to the Rust programming language
- Exposure to proof techniques (progress and preservation, logical relations, separation logic, refinement, translation validation, symbolic execution, etc.)
- Foundational knowledge of cybersecurity principles (non-interference, robust property preservation, etc.)
- Experience with version control or other software collaboration tools