Software Engineer

Are you a solid software engineer with hands-on experience with Linux and C++? Come and help design and implement CERN's Industrial Control systems. Participate in the design of software solutions to control for CERN's detectors, accelerators and technical infrastructure. Take Part!
Second position validated by EDH 6780175 to hire on BE-ICS-SDS-2017-20 (EDH:  6684588)

Job Reference: BE-ICS-SDS-2017-20-LD
Publication date:
Closing date:

Software Engineer in the Beams department (BE), the Industrial Controls Group (ICS), the Supervisory Control and Data Acquisition (SCADA) and Distributed Systems (SDS) Section.


We are looking for a person with a versatile and "vertical" set of technical IT skills. You should feel comfortable in many domains, working from the command line, ad-hoc shell scripting, tinkering with compiler flags and recompiling large software projects, setting up Linux services, debugging the origins of a program crash as well as C/C++ programming and databases. The ability to understand the behaviour of complex systems as a whole, and being able to drill down to details, and quickly acquire and apply necessary knowledge to intervene on an operational system is a key skill for this job.


You will join:


  • The Beams (BE) Department, responsible for beam performance over the complete CERN accelerator chain, from the source to the Large Hadron Collider (LHC), and which carries out Research and Development (R&D) activities on the upgrade of the LHC, its injectors and on future accelerators.
  • The Industrial Controls and Safety systems (ICS) Group which provides solutions and support for industrial control systems and which develops, installs and maintains CERN's safety systems including fire and gas detection, evacuation and access control.
  • The Supervisory Control and Data Acquisition (SCADA) and Distributed Systems section (SDS) that designs, implements and supports the framework of components provided to physicists and engineers inside and outside the Group for developing control systems. This framework of components is based on the WinCC Open Architecture SCADA tool and uses both off-the-shelf and custom developed front-end systems.




As a Software Engineer you will be part of a team that is responsible for the development and support of industrial control systems, frameworks and tools. You will be working with specifications, design, implementation and testing of software for some of the most complex scientific machines there is.


You will specifically:


  • Develop extensions and new functionality of the CERN controls frameworks (JCOP and UNICOS) according to the needs agreed with the users using the custom C-like WinCC OA scripting language as well as C++.
  • Develop end user applications, making use of the controls frameworks.
  • Contribute to the redesign of our software in view of the next Large Hadron Collider (LHC) operation cycle.
  • As part of a small support team, take an active role in the support effort to CERN users of Industrial Control Systems, in particular for WinCC Open Architecture (OA) and the associated frameworks developed at CERN.
  • Participate in the maintenance and operation of more than 200 industrial controls applications at CERN.
  • Keep abreast of the latest developments in modern software technologies, evaluate how they can be applied to industrial controls at CERN and make proposals on their potential integration to improve existing systems and services.
  • Take an active role in planning and management of the development of industrial control tools and applications in all of CERN domains (i.e. experiments, accelerators and technical infrastructure).



Qualification required

Master's degree in the field of Computer Science, Electronics/telecommunications Engineering, Industrial Automation or Physics, or equivalent.


Experience and competencies

The experience required for this post is:


  • Demonstrated experience in software engineering practices in large software projects (e.g. configuration management, user requirements. capture, testing and validation, etc.)
  • Hands-on experience in programming, system configuration, maintenance and troubleshooting operational software systems.


Experience in computing related to industrial process control/supervision systems would be an advantage.


The technical competencies required for this post are:


  • Programming/Software development. The design, creation, testing and documenting of new and amended programs from supplied specifications in accordance with agreed standards. Object-oriented languages (C++, Java, etc.), Procedural languages (C, PL/SQL, etc.), Scripting languages (PERL, JavaScript, Visual Basic, Unix Shell, etc.). Software development processes and techniques/ software engineering (UML, Scrum, Agile development).
  • System software administration
  • Use of Database software packages: such as Oracle.
  • Management and configuration of large control systems would be an asset
  • Overall architectural design of large control systems / Design of control systems would be an asset.


The behavioural competencies required for this post are:


  • Communicating Effectively: expressing opinions, ideas and suggestions with conviction and in a logical/structured manner; keeping to the point; demonstrating a pro-active approach to resolving differences; addressing issues of conflict constructively.
  • Managing Self: working well autonomously; taking on activities and tasks without prompting.
  • Setting Direction: coordinating activities and focusing team on goals and objectives; monitoring progress of team towards agreed goals and taking corrective action when needed.
  • Learning and Sharing Knowledge; sharing knowledge and expertise freely and willingly with others; coaching others to ensure knowledge transfer.


The language competencies required are:


  • Spoken and written English or French: ability to understand and speak the other language in professional contexts. Ability to draw-up technical specifications and/or scientific reports and to make oral presentations in at least one of the two languages.
Eligibility conditions

Employing a diverse and international workforce is a CERN core value and central to our success. We welcome applications from all Member States irrespective of gender, age, disability, sexual orientation, race, religion or personal situation.


This vacancy will be filled as soon as possible, and applications should normally reach us no later than 15.03.2017.


By applying here, you allow CERN to consider your application for any position it considers relevant with respect to your profile. Please ensure you update your profile regularly with any relevant information and that you inform the recruitment service if you wish your file to be removed from the database.

Note on Employment Conditions

We offer a limited-duration contract for a period of 5 years. Limited-duration contracts shall terminate by default on their date of expiry.

Subject to certain conditions, holders of limited-duration contracts may apply for an indefinite position.


These functions require:


  • Work in radiation areas.
  • Interventions in underground installations.
  • A valid driving licence.
  • Stand-by duty, when required by the needs of the Organization.
  • Work during nights, Sundays and official holidays, when required by the needs of the Organization.



Read more about employment conditions

Benchmark Job Title:
Computing Engineer
Professional Category:
Computer Scientists
Job Category:
Information Technologies
Career Level
Grade 6 or 7
Number of Posts
Duration: 5 year(s)

Application is closed for this job.