Software Engineer for MX Data Acquisition
Primarily based onsite / some home working available
About Us
Diamond Light Source is the UK’s national synchrotron science facility. By accelerating electrons to near light-speed, Diamond generates brilliant beams of light from infra-red to X-rays which are used for academic and industry research and development across a range of scientific disciplines including structural biology, physics, chemistry, materials science, engineering, earth and environmental sciences.
At Diamond we are currently undertaking a major upgrade of the facility, known as Diamond-II. Diamond-II will combine a new machine and new beamlines with a comprehensive series of upgrades to optics, detectors, sample environments, sample delivery capabilities and computing, which will ultimately generate an even more brilliant light source at a higher energy.
About the Data Acquisition Group
The DAQ group develops software to interface with and orchestrate the hardware which allows experiments to be configured, performed, and monitored, as well as collecting and formatting scientific data. 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 visualisation. Typical experiments will generate tens of terabytes of data per day.
Data acquisition is currently managed by facility users with our open-source software package, GDA, which is responsible for configuring and executing experiments, and for the capture, visualisation, and storage of experimental 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 configure and control experiments locally.
To facilitate the advanced scientific capabilities that are expected from Diamond-II the Data Acquisition Software is being modernised and will result in a service-based architecture. The new Acquisition Platform, Athena, will be configured to deliver advanced capabilities for a new collection of State-of-the-Art Beamlines. The Eclipse UI will be replaced with a Web UI, designed using good UX principles.
Over the next few years existing beamline software will be migrated from GDA to Athena.
About the Role
We now have an opportunity for a Software Engineer within the Diamond Data Acquisition (DAQ) group to support and develop the data acquisition 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 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.
The MX DAQ team have already made significant progress in migrating beamlines from GDA to Athena.
As a Software Engineer in the DAQ Group you will work alongside other software engineers supporting a range of experimental techniques and developing DAQ 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, data analysis and information management engineers to put these requirements into action. You will collaborate with your MX DAQ team colleagues in the support and extension of DAQ solutions for the MX beamlines, and you will provide insight to the DAQ Core Team to influence the modernisation of the Acquisition Platform. You will also potentially participate in international collaborations within this domain, sharing best practice and supporting other facilities and synchrotrons within the collaboration.
Diamond is an exciting place to work. The work is both challenging and varied. With the upgrade of the beamline software architecture there is the opportunity to work with new and cutting-edge technology and approaches, such as containerisation, service-oriented software, modern Python paradigms and AI/ML. The new software architectural approaches offer greater opportunities for cross group and international cross facility collaboration.
About You
You will be qualified to degree level in a STEM subject or equivalent, 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.
Ideally you will have experience of writing software to control and monitor remote hardware in either the scientific, industrial, military or home automation sector and be familiar with the typical challenges and solutions presented by this kind of software application.
Please note that the focus of this role is not data processing or analysis but experiment configuration and monitoring, and scientific instrument orchestration and data collection.
Experience of working with large and complex code bases would be an advantage, as would experience of Python 3 (particularly the libraries that facilitate asynchronous computing), Java, Spring, JMS message-oriented middleware, Java RMI, the HDF5 file format, the Eclipse RCP platform, REST and Kubernetes.
You should display good communication, interpersonal and analytical skills, with a personal interest or experience in science. Practical experience of the Agile software delivery process would be an advantage.
To Apply
Please use the online application process to apply and tell us why you believe you are suitable for this role.
The initial closing date for applications is 24th November 2024, however applications will be reviewed and interviewed on an ongoing basis until this vacancy is filled.
Other information
Diamond is open to different ways of working and we are committed to supporting our employees to have more flexibility and autonomy over where, when and how long they work.
Where relevant, and possible for the role, we will consider flexible working arrangements, secondment and job share opportunities.
Diamond attract talented individuals from around the world and currently employ 44 different nationalities. Reflecting trends in our sector we employ more men than women (77% men and 23% women as at March 2021). Therefore, we particularly welcome applications from suitably qualified women.
If you are disabled and would like to be considered under the Disability Confident Scheme, please let us know via the online application process.
Diamond are members of Working Families (the UK’s work-life balance organisation) and we have also achieved the Disability Confident Level Two award.