This includes work in areas such as:
– RISC-V firmware and driver development.
– Software hardening and security tools.
– Embedded operating systems (in Rust and C).
– Compilers, code generators, and linters.
– Simulators and emulators (e.g. QEMU).
– Electronic design automation (EDA) tools.
– Performance and code size analysis.
– Cloud-based infrastructure (such as continuous integration pipelines)
Requirements:
– Solid experience with C or Rust.
– Strong algorithmic and problem solving skills.
– A degree in Computer Science or equivalent experience.
– A high standard of written and spoken English.
Preferred or highly valued:
– Experience designing, implementing, and maintaining large-scale or modular Rust codebases.
– Expert understanding of unsafe Rust, FFI, and low-level systems programming.
– Strong proficiency in C; familiarity with C++ and Python are a plus.
– Solid understanding of compiler internals; experience with LLVM is a plus.
– Experience with build systems and reproducible tooling (e.g. Bazel, Nix, uv).
– Experience developing for embedded or resource-constrained environments, including real-time systems.
– Familiarity with CI/CD for embedded or systems software.
– Strong knowledge of computer architecture; some experience with assembly languages (x86, RISC-V); familiarity with hardware design is a plus.
– Good knowledge of Linux.
– Experience contributing to open source projects.
– Higher degree levels and academic research experience are highly valued.
…
