The Secure and Resilient Systems group seeks a software engineer with experience in low-level systems (crypto, operating systems) and in systems programming languages such as Rust, C and C++ to perform software development and to support a team that invents, prototypes, and evaluates software security approaches throughout the systems software stack.
Some topics of interest to a good candidate may include: modern systems programming languages such as Rust, 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 is a plus.
Secure and Resilient Systems research scientists need a strong background in computer science fundamentals (e.g., algorithms, data structures, theory of computation, programming languages), experience with software development practices for large projects (e.g., version control, debugging techniques), an understanding of the system software stack and the software/hardware interface (e.g., at least one ISA, assembly code), and propensity for the research process (e.g., breaking big problems down, designing experiments, analyzing data).
If you have taken compilers, computer architecture, operating systems, programming languages theory and/or formal methods courses, you should apply for this position. If you have experience implementing systems software in Rust, you definitely should apply for this position. If you have hacked on low-level Rust code like crypto or device drivers, then you need to apply for this position!
Required Qualifications:
Desired Qualifications:
Software Powered by iCIMS
www.icims.com