Software Engineer

Switzerland (CH)
16 May 2018
End of advertisement period
07 Jun 2018
Contract Type
Fixed Term
Full Time


Would you like to work on the next generation of technology and tools for Rapid Application Development (RAD), Dashboarding, and UI development in general, which will be used in the CERN Control Center (CCC) to control the LHC and the other accelerators? CERN, take part!

The GUIs of the CERN accelerator controls system have so far been implemented by engineers and other trained developers. We now want to enable a larger community of people including physicists, accelerator operators and electronics specialists to contribute to the UI layer. From a technical viewpoint, our approach is to make the visual layer as thin as possible and to cleanly separate it from the business logic, using a serverless/FAAS or similar architecture.

You will join:

  • The Beams Department (BE), responsible for the beam generation, acceleration, diagnostics, controls and performance optimization for the LHC and its injector accelerators.
  • The Controls Group (CO), responsible for developing the controls infrastructure used to operate these particle accelerators 24 hours a day.
  • The Applications Section (APS), a dynamic and quality-oriented agile team, responsible for the mission-critical user interfaces and server-side applications used by the accelerator physicists and operators. (


As Software Engineer in the Applications Section, you will guide a small team to work on the next generation RAD/UI frameworks used to control the CERN Accelerators. In particular, you will:

  • Define architectural aspects of RAD/UI solutions, including how they are integrated into the accelerator controls system;
  • Evaluate open-source frameworks and libraries for RAD/UI development and for serverless/FAAS architectures;
  • Design and develop controls-specific UI components, as well as extensions and customizations to the frameworks;
  • Provide development tools that enable our users to easily develop User Interfaces using the above solutions;
  • Establish workflows, procedures and best practices for our users on how to use the above solutions;
  • Promote the above solutions amongst our user community and help them adopting them;
  • Contribute back to the open-source community.