Join our talented and enthusiastic team of scientists and engineers to design and develop modular, reliable, and scalable operating systems for quantum computers.
Spearhead the design and development of scalable and verifiable software that runs efficiently in parallel across multiple machines/architectures, while helping refine our software architecture to accommodate our future needs.
Collaborate with diverse subsystem teams to develop innovative solutions to complex challenges.
Support experimentation and continuously adapt to new discoveries from the Quantum team.
Participate in knowledge sharing and code reviews to improve product quality.
Proficiency in designing and developing complex software for heterogeneous resource-constrained systems
A solid understanding of design principles, data structures, reliable networking strategies, and systems modelling
Experience with requirements capture, collaborative development, revision control, verification/validation, and unit testing
7+ years of experience in design and development of commercial-quality software in a collaborative environment, using a mix of Python and C++ (or similar)
A demonstrable successful project independently architected by you, which showcases an optimal software/system design for the task and efficient use of bandwidth/compute power
A deep understanding of low-level software design concepts, such as real-time operating systems, interfacing with FPGA-based platforms, and IPC/RPC
Experience in programming for and deploying into a live distributed computing environment
Familiarity with common networking architectures and protocols
Familiarity with Git and experience with collaborative design and development, and code reviews
Excellent written and verbal communication skills and the ability to produce good documentation
Ability to rapidly grasp new concepts through research and reading
Effective presentation of concepts and ideas to engineers and scientists, and being able to identify compromises and trade-offs
Willingness to learn new tools and programming languages
Experience in developing commercial products based on embedded systems and real-time hardware control
Experience with simulations, parallelisation and HPC optimisations
Experience of working alongside hardware and/or research teams
Previous experience in start-ups or similar dynamic work environments