Software Engineer for Data Acquisition

  • UK Only
  • Diamond
Job Description:

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 within the Diamond Data Acquisition (DAQ) group to support and develop the Generic Data Acquisition (GDA) software for experiments at Diamond. These experiments exploit single crystal X-ray diffraction to determine the structure of biological macromolecules, more generally referred to as macromolecular crystallography (MX). The determination of the structures of biological macromolecules such as proteins, nucleic acids and viruses by X-ray diffraction is a major activity within Diamond.

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.

The MX experimental setups at Diamond are highly automated, enabling experiments to be planned and executed remotely. This provides an exciting opportunity to lead in the development of bespoke software to make experiments autonomous.

As a 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.

Benefits

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.

Other Jobs in Full Stack