Software System Engineer (EPICS)

This vacancy is now closed
Job Title Software System Engineer (EPICS)
Job Reference DIA0633/SB
Post Type
Division Technical
Salary information Circa £32k
Application deadline 02/09/2011
Date of interviews

Job Description

The accelerator and photon beamlines are controlled through a distributed, heterogeneous computing environment, using embedded systems for direct control of the instrumentation, together with Linux workstations for the operator interfaces. The software makes extensive use of the open source EPICS Control System tool kit ( Real-time control functionality mostly runs as server side applications realised in C together with EPICS data processing.  The client side applications comprise general-purpose tools for synoptic display management, alarm handling and archiving, as well as bespoke tools to control the operation and characterization of the accelerator.

The EPICS toolkit and applications are predominantly developed using C or C++, but  more recent client applications have been developed using Python and Qt. However future applications are increasingly being developed in Java with Eclipse RCP.

This role is a member of the High Level Application Team supporting existing EPICS toolkit and developing the tools required to operate and develop the control system and accelerators.  The duties will involve working closely with other members of the Control System Group, other technical groups in Diamond and the wider EPICS collaboration to capture requirements, specify and develop new software and to support existing software.


  • Design and development of software as part of the EPICS Controls System toolkit.
  • Collaboration with other core EPICS developers on planning and the development for EPICS Core.
  • Provide expert commissioning and diagnose faults relating to aspects of EPICS core software components.
  • Provide operational support across Diamond on EPICS software components.
  • 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 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.
  • Represent Diamond at EPICS Collaboration meetings and workshops, and manage hosting of meetings at Diamond. 

Qualification & Experience - Essential

• Honours degree in physics, electrical engineering, computer science or equivalent other degree plus relevant experience
• Knowledge and experience in programming in an object orientated language.
• Knowledge and experience of development in a Unix environment
• Knowledge and experience of development with a source code control and structured release environment.
• Experience of using software testing and debugging tools effectively and developing automated test harnesses.
• Ability to communicate effectively, both orally and in writing.
• Ability to solve technical problems, evaluating alternative courses of action and innovating where necessary.
• Self-motivation and a willingness to take responsibility.
• Ability to work as part of a team.
• 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.

Qualification & Experience - Desirable

• Further education in a relevant physics or engineering field.
• Knowledge and experience of Linux on PC’s.
• Knowledge and experience with Scripting Languages.
• Knowledge of networking programming.
• Knowledge and experience in programming in Java.
• Knowledge and experience of Eclipse and RCP
• Experience in developing software in a real time distributed control environment.
• Knowledge and understanding of relational databases, and server and client side processing
• An appreciation 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

Other information