Staff Software Engineer (Non-Realtime Controllers)
Posted Updated
- Quantum is now, and it’s built here
- Oxford Ionics, now part of IonQ, is pioneering the next generation of quantum computing
- Using our world-leading trapped-ion technology, we’re building the most powerful, accurate and reliable quantum systems to tackle problems that today’s supercomputers cannot solve
- We’re looking for an enthusiastic and highly technical Staff Software Engineer for our non-realtime controllers team who will thrive in our dynamic cross-disciplinary environment
- You’d be working closely with our skilled software engineers, our systems teams who operate the physical quantum computers, and our world-leading quantum scientists to build and operate the software that controls the hardware surrounding our quantum computers
- Previous exposure to quantum systems is not required
- You will take on our most demanding hardware integrations and the framework work that makes every other controller better
- This is a hands-on engineering role: you would be the most experienced engineer writing controllers, not the one directing others to write them
- A working quantum computer is far more than the ion trap and its real-time control electronics
- It depends on a fleet of supporting hardware, including cryogenic compressors, vacuum pumps, power supplies, lasers, temperature controllers, wavemeters and cameras, that has to be kept observable, controllable and reliable
- The timing-critical operations such as gate waveforms and ion transport run on dedicated real-time FPGA systems, while this team owns everything that does not need hard timing guarantees
- These services run on general-purpose Linux hardware and must be rock-solid, because a failed compressor or an un-noticed pressure drift takes a whole machine offline
- This is a hands-on engineering role. Your influence comes from the code you ship and review, and from the problems you take off everyone else’s plate
- Take on our most demanding device integrations, and do the deep diagnosis of problems that only appear against real hardware in a live lab
- Remove whole classes of failure across the fleet, rather than instances of them
- Improve the shared framework yourself, and bring the existing controllers along with each change
- Build the tooling, simulators and test infrastructure that let the whole team move faster
- Evolve how our services are deployed and operated as the fleet grows, and make the fleet observable enough that problems are found early
- Raise the bar of everyone around you through the code you write and the reviews you give
- To be successful, you will need deep systems engineering experience, a track record of shipping and operating reliable services, and the judgement to tell a problem worth solving structurally from one worth patching. We’re looking for someone who wants to stay hands-on in the code at this level rather than move away from it
- A reputation as the person people bring the undiagnosable bug to, and the ability to prioritise work with a clear understanding of critical versus urgent items
- Experience of hardware and instrument protocols and interfaces such as SCPI, Modbus, serial and Ethernet
- Experience building and operating networked services in production such as gRPC or REST, with a real grasp of error handling, observability and failure modes
- Expert systems engineering skills. Our controllers are written in Rust, so either solid Rust experience or deep proficiency in another systems language and the appetite to work in a Rust codebase, including async programming
- Excellent communication skills both within software and across disciplines
