Senior Software Systems Engineer: EPICS Core Development

This vacancy is now closed
Job Title Senior Software Systems Engineer: EPICS Core Development
Job Reference DIA0582/SB
Post Type
Division Technical
Salary information £36,000 - £49,000 (depending on skills, qualifications and experience)
Application deadline 07/01/2011

Job Description

The control system for the Diamond Accelerators and Beamlines is a distributed computing system, using embedded CPU’s running the VxWorks operating system for direct control of instrumentation, together with Linux workstations for the operator interfaces. Most of the VxWorks 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 Senior Software Systems Engineer working on EPICS core development you will be working with the recognised lead engineers of the EPICS toolkit from around the world to further develop the toolkit to make it more suited to the general needs of large experimental systems in general, and the specific needs of Diamond in particular. You will already have a detailed knowledge of how EPICS works, and will work with the EPICS developer community to define the future developments, and then personally undertake detailed technical design and developments. You will be expected to act as a major internal asset within the Diamond controls group when complex problems arise which relate to the EPICS infrastructure.

• Design and development of software as part of the EPICS Controls System toolkit. 
• Represent Diamond Light Source in the international EPICS collaboration.
• Collaboration with other core EPICS developers on planning and the development for EPICS Core.
• Provide technical expertise across Diamond on EPICS core software components.
• Provide expert commissioning and diagnose faults relating to aspects of EPICS core software components.
• Communicate planned and ongoing developments of EPICS with Diamond.
• As required design and develop the Control System of one or more accelerator/beamline technical subsystems.
• Interface with internal customers, including Engineers and Scientists, at all stages of the development life cycle to, for example, developing 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 and within the EPICS collaboration.
• Report on progress in all areas on a periodic basis
• Liaise with, and supervise, contractors and suppliers of turn key Control Systems
• Provide technical expertise in software development and skills in software design for real-time distributed control systems.
• Project planning and coordination of projects relating to Control Systems for accelerators and/or beamlines and core EPICS developments.
• Maintain a current knowledge of the Control Systems on other, comparable, beamline and accelerator projects.
• Communicate details of Control System developments within Diamond and to other projects.
• Represent Diamond at EPICS Collaboration meetings and workshops, and manage hosting of meetings at Diamond.
• Mentor and train more junior engineers as required.

Qualification & Experience - Essential

• Honours degree in physics, electrical engineering, computer science or equivalent other degree and considerable relevant experience;
• Considerable experience in the software design and/or programming of industrial or scientific systems, including EPICS experience
• Knowledge and experience of the EPICS core, device driver support, DB and CA;
• Knowledge and experience in programming in C and C++;
• Experience in developing software in a real time distributed control environment;
• Knowledge and experience of developing layer 4 (application level) communication protocols;
• Knowledge and experience of developing in a Unix environment;
• Knowledge and experience of developing with world-wide distributed teams using a source code control and structured release environment;
• Demonstrate ability to communicate effectively, both orally and written;
• Ability to solve technical problems, evaluating alternative courses of action and innovating where necessary;
• Ability to work as part of an internationally-distributed, multi-national team;
• Demonstrate an understanding of project planning and management;
• Self-motivation and a willingness to take responsibility;
• Ability to work effectively alone and without direct supervision;
• Be prepared to undertake further training;

Qualification & Experience - Desirable

• Further education in a relevant engineering field;
• Knowledge and experience of VME or embedded systems
• Knowledge and experience of Linux on PC’s;
• Knowledge and experience with Scripting Languages;
• Knowledge of Motion control;
• Knowledge of networking
• Knowledge of VxWorks or Linux kernel
• Project management experience or EPICS or Beamline or Accelerator CS design experience

Further Information

• 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.

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