Riverside Research is looking to solve national security problems by developing secure and resilient systems, specifically in low-level systems, crypto, operating systems, and systems programming languages
Requirements
- Experience with low-level software including C and assembly code
- Experience with Rust
- Software development fundamentals for working inside a large project (e.g., submitting PRs, git branches/merges/rebasing, build systems, etc.)
- Fluency in various programming languages, and strong background in programing languages, algorithms, and data structures fundamentals
- Rust expertise, including contributions to large codebases (either open- or closed-source)
- Experience with 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), peripheral hardware (e.g., custom device drivers, FPGA hardware, bus protocols), cryptographic protocols/implementations and/or formal methods
Responsibilities
- Learn to read, understand and modify large systems codebases
- Implement systems code in Rust or other suitable programming languages
- Help the group design innovative solutions to customer problems related to systems software
- Prototype and evaluate features within large software projects such as LLVM
- Build new tools and/or capabilities in a range of relevant programming languages
- Contribute to whitepapers and/or published papers that document innovative work performed
- Document and communicate design decisions, technical challenges, and progress to technical program leadership
Other
- Bachelor's degree, preferably in a related technical field such as computer science, computer engineering, electrical engineering or cybersecurity
- Secret clearance
- U.S. Citizenship
- Communication and creative skills to develop, prototype, benchmark, and document significant security features integrated into existing systems security technologies
- Superior written and verbal communications skills