Job Title Graduate / Software Systems Engineer
Job Reference DIA0841/SB
Post Type
Division Technical
Salary information Competitive
Application deadline Open Vacancy


Job Description


Photon beamlines are required to deliver ultra stable x-ray beams from the Diamond storage ring to the experimental samples.  They require extensive control of x-ray optical components and other instrumentation to control the photon beam profile and position.

Control systems for the photon beamlines are realised as a distributed, heterogeneous computing environment, using embedded systems for direct control of the x-ray optical components and other instrumentation, together with Linux workstations for the operator interfaces. Most of the embedded applications are coded in C or built using the EPICS control system toolkit, and the Linux applications use a combination of C, Java and scripting languages.

As a Software Systems Engineer working on the photon beamlines your task will be to work closely with a team of scientists and engineers to specify and develop software to deliver ultra stable x-ray beams from the Diamond storage ring to the experimental sample. 

Duties at Graduate Appointment:

  • Work with scientists and engineers on the overall design and specification for the beamline control systems.
  • Work as part of a small team to design, implement, test and document control software for the photon beamlines.
  • Provide support for the commissioning of photon beamline control systems.
  • Provide operational support and maintenance of software for existing systems, including attention and response to fault reports when appropriate.
  • Personal training and development.

Additional duties at higher appointment: 

  • Design and develop the Control System of one or more photon beamlines
  • Commission and diagnose faults in installed Control Systems.
  • Provide operational support and analysis of installed Control Systems
  • Interface with internal customers, including Engineers and Scientists, at all stages of the development life cycle to, for example, develop requirements, track project progress, and verify operation of Control Systems
  • Contribute to the processes and associated software development to support the design of Control Systems throughout Diamond.
  • Report on progress in all areas on a periodic basis.
  • Support of contractors and suppliers of turn key Control Systems.
  • Maintain and develop technical expertise in software development
  • Maintain a current knowledge of the Control Systems on other, comparable, beamline and accelerator projects.

Qualification & Experience - Essential

  • Honours degree in physics, electronic engineering, computer science or equivalent other degree, BTEC HNC/HND plus relevant experience.
  • Understanding of software design and/or programming of industrial or scientific systems. 
  • Knowledge and experience in programming in C or an Object Orientated language 
  • Understanding of software in a real time distributed environment.
  • Knowledge and experience of developing in a Unix environment
  • Demonstrate ability to communicate effectively, both orally and written.
  • Ability to solve technical problems, evaluating alternative courses of action and innovating where necessary.
  • Demonstrate self-motivation and a willingness to take responsibility. 
  • Demonstrate ability to work as part of a team.
  • Demonstrate ability to work effectively alone and without direct supervision
  • Be willing to work overtime at unsociable hours as required.
  • Be willing to travel in the UK and abroad, including occasional periods away from home.
  • Be prepared to undertake further training.

Essential Criteria for higher appointment:

  • Significant relevant experience in the software design and/or programming of industrial or scientific systems.
  • Experience in developing software in a real time distributed control environment.
  • Knowledge and experience of developing with a source code control and structured release environment.
  • Experience of using software testing and debugging tools effectively and developing automated test harnesses.

Qualification & Experience - Desirable

  • Knowledge and experience of embedded systems.
  • Knowledge and experience of Linux on PC’s.
  • Knowledge and experience with Scripting Languages.
  • Knowledge of Motion control.
  • Knowledge of networking.
  • Knowledge and experience in programming in Java.
  • Demonstrate an understanding of staff supervision. 
  • Demonstrate an understanding of project planning and management
  • Demonstrate an understanding of staff supervision. 
  • Demonstrate an understanding of project planning and management 

Further Information

Applying for employment

For further details on applying for employment at Diamond, please visit our 'Application Form' page.

Appointments will be made depending on the skills and experience of the candidate. Electronic Diamond application forms in MS-Word are preferred. These should be emailed to recruitment@diamond.ac.uk



Other information