(Senior) Software Engineer for Data Acquisition

Harwell Science and Innovation Campus, Oxfordshire
£33,963 to £39,955 per annum (Discretionary range to £45,949), or £43,790 to £51,517 per annum
22 Apr 2022
22 May 2022

(Senior) Software Engineer for Data Acquisition

Harwell Science and Innovation Campus, Oxfordshire

Salary £33,963 to £39,955 per annum (Discretionary range to £45,949), or £43,790 to £51,517 per annum (Discretionary range to £59,245) for the Senior level

Full time / Flexible hours considered


Reference: 10785

About Us

Diamond Light Source is the UK’s national synchrotron; a huge scientific facility designed to produce very intense beams of X-rays, infrared, and ultraviolet light. Our scientists use the light to study a vast range of subject matter, from new medicines and treatments for disease to innovative engineering and cutting-edge technology.

Diamond is one of the most advanced scientific facilities in the world, and its pioneering capabilities and talented staff are helping to keep the UK at the forefront of scientific research.

About the Role

We now have an opportunity for a Software Engineer or Senior Software Engineer within the Diamond Data Acquisition (DAQ) group to support and develop the Generic Data Acquisition (GDA) software for experiments at Diamond. These experiments are performed on facilities (beamlines) which are part of Diamond’s Structures & Surfaces & Science Group. These beamlines facilitate investigating the structure of surfaces and interfaces under different environmental conditions. This includes the use of angle-resolved photoemission spectroscopy (ARPES) to study electronic structures and the use of soft X-ray techniques, such as soft X-ray photoelectron spectroscopy (XPS) and X-ray absorption spectroscopy (NEXAFS/XANES), to study heterogeneous catalysts, pharmaceuticals and biomaterials under realistic conditions, environmental and space science studies on liquids and ices, heritage conservation, and electronic and photonic materials.

The DAQ group develops software to interface with and control the hardware which allows experiments to be performed and monitored as well as guiding the end user to tools for data reduction and analysis. The group works closely with scientists, motion, and controls engineers to continuously develop and improve software solutions for scientific data acquisition and on-the-fly monitoring and data analysis. Typical experiments will generate tens of terabytes of data per day.

Experimental data is acquired with our open-source software package, GDA, which is responsible for managing and executing experiments, capture and storage of experimental data and real-time visualisation of collected data. GDA is a client-server application written in Java, making use of the Eclipse RCP framework. The GDA server communicates with beamline hardware via EPICS to provide a control and monitor capability and deliver high-level experimental functions. A GDA client provides both a GUI and a Python scripting capability for users to control experiments locally.

This role involves contributing to the development of software for beamlines from the Surfaces & Structures Group.

As a Software Engineer, or Senior Software Engineer, in the DAQ Group you will work alongside other software engineers supporting a range of experimental techniques and developing GDA capabilities in an open and collaborative environment. You will be required to interact with scientists and translate their specifications for scientific capabilities into software requirements. You will liaise with controls and motions engineers to put these requirements into action. You will also potentially participate in international collaborations within this domain, sharing best practice and supporting other facilities and synchrotrons within the collaboration.

About You

You will be qualified to degree level in a STEM subject, with experience in the full Software Development Lifecycle, using a modern high-level language, and with an understanding of good software design principles and design for usability.

Experience of working with large and complex code bases would be an advantage, as would experience of Python, Java, Spring, JMS message-oriented middleware, Java RMI, the HDF5 file format and the Eclipse RCP platform.

You should display good communication, interpersonal and analytical skills, with personal interest or experience in a science environment.

For appointment at the Senior Software Engineer level, you should additionally be able to demonstrate the following essential leadership capabilities:

  • Strong leadership and organisation. Proven experience in managing small teams of software engineers. Proven experience in providing technical leadership.


Diamond offers an exceptional benefits package to support staff in achieving a positive work/life balance. This includes 25 days annual leave plus 13 days of statutory and company holidays, along with flexible working hours and an excellent pension scheme. Staff also have access to a range of amenities on site including a nursery, cafes, a restaurant and sports and leisure facilities.

To Apply

Please use the online application process to apply and tell us why you believe you are suitable for this role.