Software Developer - Scientific Computing
Software & AlgorithmsFull TimeToronto, ON
At Xanadu, we are learners, innovators, researchers, collaborators, and problem solvers. We are creating something that has never been built before. What we are doing is extremely hard, the classic moon shot. Few people in their life will be able to be a part of something like this, where if we are successful, the technologies we develop will solve some of the world’s most challenging problems, and literally change the world. That is something to be excited about!
Your Role and Responsibilities:
In this role you will develop highly optimized numerical code for simulating and benchmarking a variety of quantum computing devices. You will help translate high-level algorithms to run on a variety of computing architectures. You will help develop and optimize new parallelization techniques for simulating large quantum systems and algorithms designed for Xanadu's quantum computing platform and participate in the design and development of new simulation algorithms.
Preferred Skills and Experience :
- Experience with software engineering best practices: testing, continuous integration, version control, documentation, and code review
- Great communication skills; can express complex technical concepts in a clear and easy to understand way
- Strong programming experience in modern high-performance languages (e.g., C++ [11/14/17], Fortran [03/08/18], etc.)
- Experience with high-level scientific programming frameworks & libraries in Python
- Solid debugging skills for compiled and interpreted codes (e.g., gdb, lldb, pdb, TotalView, etc.)
- Ability to convert high-level language scripts to optimized low-level implementations with optimization (SIMD vectorization) and parallelization (OpenMP, threading)
- Experience with development of numerical / approximation techniques
- Experience with binding high-level scripting languages to low-level implementations (e.g., pybind11)
- Ability to convert abstract descriptions of algorithms into efficient code implementations
- Ability to optimize algorithm efficiency at every part of the computational stack
- Ability to determine sensible tradeoffs between code being optimal, user-friendly, and easy to install
Desired Skills and Experience:
- Familiarity and experience with automatic differentiation methods and frameworks (e.g., autograd, Torch, TensorFlow, JAX).
- Familiarity with multi-processing & distributed computation (e.g., MPI)
- Experience with JIT compilation frameworks and languages (e.g., numba, JAX, Julia)
- Knowledge of CPU instruction sets, GPU programming, and compiler toolchains (e.g., x86_64/ARM on GCC/Clang)
- Knowledge of intermediate representation formats (e.g., LLVM-IR, MLIR, NVPTX)
- Familiarity with ML framework low-level internals (e.g., JAX, Torch, TensorFlow)
- Experience developing algorithms for heterogeneous compute architectures with SYCL, Kokkos, or oneAPI.
- Experience with benchmarking and performance analysis of scientific workflows (e.g Intel Advisor, Intel Vtune, perf, Arm Forge)
- Experience with scientific computing on HPC, supercomputer, and cluster-grade hardware
- Experience with scientific computing on commodity / cloud hardware (e.g., AWS, Azure, GCP)
- Understanding of quantum computing and quantum simulation algorithms, including experience with tensor networks
- 5+ years of experience working in related fields
- BSc, MSc or PhD in Computer Science, Physics, Mathematics, or Engineering with relevant industry experience preferred, or equivalent combination of education and experience
- Proven track record delivering highly optimized numerical algorithms
To build quantum computers that are useful and available to people everywhere.
Our values are important. They are fundamental and lay the foundation for culture at Xanadu. Learn more about our values here.
At Xanadu, we are committed to building an inclusive, safe, and equitable culture and fostering an environment where our employees feel included, valued, and heard. We are committed to meeting the needs of all individuals and support a barrier-free workplace. Should you require accommodations at any point during the recruitment process please contact Human Resources at firstname.lastname@example.org.