Formal
Software Engineer V
About the job
Expectations
You’ll work closely with the Formal Methods team to build a compiler for a new Rust-like language to run in kernel space. You'll spend lots of time writing Rust to formal specifications, proposing architectural or implementation ideas, reviewing code, and learning from experienced teammates. In the future, you'll collaborate with the OS, Networking, and Security teams to integrate the language into production environments.
Responsibilities
Implement compiler(s) in Rust according to specifications
Collaborate actively with the Formal Methods team
Participate in both sides of code reviews
Write software to continuously test and verify correctness
Actively document your code, process, and ideas
Collaborate and co-design with OS, Networking, and Security teams to integrate the language into production
Actively anticipate and communicate future roadblocks
Qualifications
2+ years of software engineering experience
Extensive experience writing Rust and ideally C
Understanding of system-level concerns such as binary formats, loading, ABIs, linking, and machine targets
Understanding of and experience with compilation: lexing, parsing, type checking and other analyses, code generation
Some understanding of type systems and logic systems: formal specification, design, implementation, and trade-offs
Ability to translate language specifications into code
High level of independence and autonomy
Ability and willingness to document, teach, and explain complex technical problems and solutions
Compensation & Benefits
Compensation includes a competitive salary and stock grant (>= 0.1%) with vesting. Benefits include unlimited paid vacation, reimbursable vacation expenses (travel/lodging up to $1k), triennial $4k device allowance, comprehensive health insurance, $120/month gym allowance, and $250/year for educational expenses.