Back to jobs
Job Description
Expectations
You’ll lead the development of a new, Rust-like programming language intended to run in kernel-space. Expect to write and review design documents, implementation decisions, lots of code, machine-checked proofs, and LaTeX specifications.
Responsibilities
- Develop an existing compiler codebase and software to continuously test and verify its correctness
- Formally verify language properties and implementations
- Collaborate and co-design with OS and networking teams to tightly integrate the language into the overall product
- Participate in both sides of code reviews
- Actively anticipate and communicate future roadblocks
- Participate in the open-sourcing of the language
Qualifications
- 3+ years of software engineering experience
- Deep understanding of type systems and logic systems: formal specification, design, implementation, and trade-offs
- Experience with formal programming language semantic specifications, proofs, and ability to translate them into code
- Experience with formal verification including model checking, theorem provers and SMT-based approaches
- Understanding of system-level language concerns such as binary formats, loading, ABIs, linking, and machine targets
- Mastery of or ability to quickly master Rust
- High level of independence and autonomy
- Ability and willingness to document, teach, and explain complex technical problems and solutions
Compensation & Benefits
Compensation is comprised of a competitive market salary and stock grant (>= 0.4%) conditioned on a vesting schedule. Benefits include unlimited paid and unpaid vacation time, reimbursable vacation expenses (transportation and lodging up to $1k), a triennial $4k computing device allowance, comprehensive medical, dental, and vision insurance, a $120 monthly gym allowance, and $250 yearly to spend on anything educational.