Software Engineer (Quantum Compilers)
Software Engineer (Compiler)
Oxford, UK
Join a pioneering quantum computing team at the bleeding edge of compiler innovation!
Summary
A creative Scientific Software Engineer is sought to develop state-of-the-art compilers and simulation tools for quantum computers. You'll collaborate with physicists on cutting-edge hardware and error correction, building compiler pipelines from low-level instructions to high-level languages using advanced toolchains.
Responsibilities
- Develop and maintain a Static Single Assignment (SSA) intermediate-representation-based compiler infrastructure and compiler components at various abstractions used by hardware engineers and scientists.
- Design novel domain-specific languages tailored to the hardware as well as the associated SDK together with the team.
- Integrate existing simulation tools with the compiler pipeline and cloud service.
- Communicate and collaborate with in‐house scientists and external customers to meet their use case requirements.
Qualifications
- Ph.D. in Computer Science with a focus on quantum computation, architecture, programming languages, or compilers, or equivalent professional experience.
- Enthusiasm for building software tools for scientists, especially physicists.
- Experience with Python semantics, Python type hints, and the CPython interpreter.
- Experience with at least one compiled language and its type system, e.g. C++, Julia, Rust, Haskell, OCaml, etc.
- Experience with Static Single Assignment intermediate-representation-based compiler development.
- Knowledge of the full lifecycle of software development, including version control, code review, testing, CI/CD, logging, profiling, debugging, and documentation.
- Knowledge of quantum computing basics, e.g. common quantum algorithms and quantum information theory fundamentals.
Preferred Qualifications
- Experience using LLVM or MLIR for compiler development, or experience with an existing compiler codebase.
- Background in programming language design, especially programming language theory.
- Experience in quantum program optimization, e.g. quantum circuit simplification, scheduling, routing, etc.
- Knowledge of quantum error correction.
- Contributions to existing open-source libraries.
- Experience with existing circuit simulation tools, e.g. Cirq, Qiskit, CUDA Quantum, etc.