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.