An exciting opportunity to join our data acquisition team and lead in the development of bespoke software.
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. 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.
Diamond offers an exceptional benefits package to support staff in achieving a positive work/life balance. This includes 25 days annual leave plus 5 days of 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.
About the Role
We now have an opportunity for a Senior Software Engineer within the Diamond Data Acquisition (DAQ) group to support and develop Generic Data Acquisition (GDA) software for experiments. 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.
Our 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 Senior Scientific Software Engineer in the DAQ MX team your responsibilities will be to:
- Work alongside software engineers in other DAQ Group teams supporting different experimental techniques in an open and collaborative environment.
- Interact with scientists and translate their specifications for scientific capabilities into software requirements.
- Liaise with controls and motions engineers to put these requirements into action.
- Potentially participate in international collaborations within this domain, sharing best practice and supporting other facilities and synchrotrons within the collaboration.
- Collaborate with other Senior Software Engineers within the DAQ Group to continuously review and improve/modernise the core GDA framework.
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 ideally applied to the task of orchestrating hardware control & monitoring, and with an understanding of good software design principles and design for usability.
You should preferably have experience from a science environment, with excellent problem-solving skills, and ideally with a working knowledge of Macromolecular Crystallography.
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 skills and interpersonal skills in order to work closely with science and engineering colleagues and collaborators.
You should be able to demonstrate the following essential leadership capabilities:
- Strong leadership and organisation.
- Proven experience in managing small teams of software engineers.
- Providing technical leadership.
Please use the online application process to apply and tell us why you believe you are suitable for this role.
Where relevant, and possible for the role, we will consider flexible working arrangements and secondment opportunities.
Diamond attract talented individuals from around the world and currently employ 39 different nationalities. Reflecting trends in our sector we employ more men than women (78% men and 22% women as at 5 April 2019). Therefore, in accordance with law and good practice, we particularly welcome applications from suitably qualified women.
If you are disabled and would like to be considered under the Guaranteed Interview Scheme, please let us know via the online application process.
Diamond are members of Working Families (the UK’s work-life balance organisation), we have also achieved the Athena SWAN Bronze award and Disability Confident Level One.
To apply for this job please visit vacancies.diamond.ac.uk.