Interview Process: 2 stage MS teams, 1 onsite final
Compensation
The approximate base salary range for this position is $155,000–$170,000 + healthcare + benefits package
We are seeking an experienced Software Engineer to develop and deliver the software that powers complex, high-performance hardware systems. You will play a key role in designing and building the control software, orchestration tools, and infrastructure that connect hardware components.
Working closely systems architects, and hardware engineers, you will turn complex system requirements into robust, scalable software, enabling precise real-time control, reliable operation, and seamless integration across the platform.
Key Responsibilities
- Design and implement software systems for orchestrating experiments, including pulse sequence generation, device coordination, and real-time system control.
- Develop and maintain APIs and middleware that connect hardware control layers (e.g., FPGAs, DACs, and timing systems) with higher-level orchestration software and compilers.
- Implement reliable communication and synchronisation protocols across embedded and distributed system components.
- Collaborate with system architects and physicists to translate experimental requirements into testable, high-performance software features.
- Contribute to diagnostic and calibration routines for hardware validation and performance monitoring.
- Develop tooling to support automation, test infrastructure, system state management, and logging.
- Participate in system bring-up, integration testing, and cross-disciplinary debugging efforts.
- Contribute to software architecture decisions, code reviews, and engineering best practices across the team.
Required Qualifications
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Physics, or a related field.
- 5+ years of experience developing software for hardware control, embedded systems, or distributed systems.
- Strong programming skills in Python and/or C/C++, with experience working with hardware interfaces such as SPI, I2C, UART, or Ethernet.
- Experience with real-time systems or hardware-in-the-loop control environments.
- Familiarity with timing systems (e.g., PTP) and communication stacks.
- Proficiency in system integration, testing, and performance tuning.
Preferred Qualifications
- Experience with scientific instrumentation, lab automation, or hardware control systems.
- Familiarity with FPGA systems, DAC/ADC control, or pulse sequencing frameworks.
- Exposure to embedded Linux, RTOS, or custom firmware development.
- Knowledge of calibration, feedback, or control loop algorithms.
- Experience working in multidisciplinary teams at the intersection of hardware, software, and science.
We cannot provide sponsorship now or in the fuutre.