Job Description

We are looking for a senior software engineer with C++ and Python experience to join our growing software engineering team. The successful candidate will contribute to the development and testing of a high-energy multiphysics simulator written in C++ with a Python front end. You may also be asked to work on a magnetohydrodynamics simulator written in Object Oriented Fortran, so relevant experience would also be an asset. Familiarity with the Boost Python C++ interface will be advantageous, and familiarity with Linux systems will be required. The software is used internally by the physics, data science, and target design teams and you will also be providing troubleshooting, bug fixing and support to these users. There may be opportunity to work with and support machine learning tools used by the department

Responsibilities will include

  • Developing and testing new features in the simulation codes.
  • Addressing performance issues in the codes.
  • Fixing bugs.
  • Performing refactors.
  • Maintaining and extending the C++/Python interface.
  • Providing troubleshooting and support to users.
  • Working closely with the Numerical Physics team to promote high software standards.


  • Degree in physics, maths, engineering, software engineering, computer science or
  • Substantial commercial experience of developing in C++.
  • Good Python knowledge.
  • Familiarity with Linux systems.
  • Fast and effective problem-solving skills and a methodical approach to work.
  • Strong communication and interpersonal skills.


  • MSc or PhD in maths, physics, engineering or similar.
  • Experience with large physics simulation codes or hydrocodes.
  • Experience with the Boost Python C++ interface.
  • Experience developing parallel code for HPC architectures.
  • Some knowledge of modern Fortran.
  • Demonstrated ability to deliver to agreed objectives.