Software Engineer (BE-CSS-FST-2023-143-LD)

  • Location:
  • Salary:
    negotiable / YEAR
  • Job type:
  • Posted:
    1 month ago
  • Category:
    Engineering, Information and Communication Technology
  • Deadline:


Company Description

At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. Using the world’s largest and most complex scientific instruments, they study the basic constituents of matter – fundamental particles that are made to collide together at close to the speed of light. The process gives physicists clues about how particles interact, and provides insights into the fundamental laws of nature. Find out more on

Job Description


Are you a skilled and experienced Software Engineer? Are you passionate about creating low-level, real-time solutions? Do you want to contribute to the unique challenge of making all CERN particle accelerators function in a uniform and synchronised manner? Join CERN’s Controls Software & Services group, to work on real-time software for the largest particle physics laboratory in the world. Take Part!

The CERN accelerator complex is composed of thousands of magnets, accelerating RF cavities, beam measurement instruments and many other equipment. They must all function in a sophisticated, well-coordinated fashion to produce, accelerate and deliver the high-energy particle beam to the numerous physics experiments.

From a computing perspective, this is a huge and complex distributed system with thousands of devices running real-time software, connected by high performance communication networks, and synchronised with nanosecond precision. Our team helps make this a success through the development and evolution of low-level systems and generic real-time software frameworks needed as core elements for the accelerator complex controls. You will have the opportunity to contribute and influence the design of the new timing system and controls frameworks, imprinting your remarkable engineering skills on solutions, which will serve for the coming decades.

You will join:

  • The BE Department, responsible for the beam generation, acceleration, diagnostics, controls and performance optimization for the LHC and its injector accelerators.
  • The CSS Group, responsible for providing and supporting the controls software and infrastructure used to operate and maintain these particle accelerators 24 hours a day.
  • The FST Section, a dynamic and quality-oriented agile team, responsible for mission-critical software frameworks for communication and real-time accelerator control.


As a Software Engineer, you will join a passionate team, and take an important role in the evolution of the low-level real-time frameworks used to control accelerator hardware. You will also help bring the Accelerator Timing System to a new technological era, utilizing White Rabbit, a novel, IEEE standard, Ethernet based network with sub-nanosecond accuracy, pioneered by your future colleagues. You will be involved in all aspects of the software life cycle, including user requirements gathering, design, development, testing and production deployment of the new solution, following our agile development process.

In particular, you will:

  • Drive discussions with the end-users to understand their needs and help translate these into appropriate solutions.
  • Shape the evolution, and participate in the development, of our core frameworks used for real-time control and integration with various equipment types and PLCs.
  • Engage with the world-class hardware engineers who invented the White Rabbit network and develop low-level software to integrate the White Rabbit hardware into the Timing System.
  • Contribute to the development of the mission-critical Accelerator Timing software to coordinate the thousands of accelerator devices.
  • Collaborate and share knowledge and solutions with other highly skilled software engineers both inside the CSS group and across the Accelerators & Technology sector.
  • Investigate, diagnose, and resolve operational problems in collaboration with end-users ranging from equipment specialists to operations teams.
  • Take responsibility for one or more key systems, after an initial learning period, planning the evolution of the system, through appropriate user community engagement and subsequent follow-up.
  • On-board and mentor junior developers.


Master’s degree or equivalent relevant experience in the field of Computer Science or a related field.


The following are required for this post:

  • Proven experience in C++ development, in a Linux (or Unix-like) environment, including practical experience developing real-time systems.
  • Knowledge of Linux compilation toolchains and build systems.
  • Very good knowledge of object-oriented programming principles.
  • Experience applying software quality assurance techniques and practice with corresponding tools.

The following are considered assets but are not mandatory:

  • Experience in Java and/or Python development.
  • Experience with communication protocols and networking stacks.
  • Experience in modern FPGA development (VHDL).

Technical competencies:

  • Development of low-level software for real-time systems.
  • Knowledge and application of software life-cycle tools and procedures including DevOps.
  • Testing, diagnosing and optimization of software.
  • Knowledge of programming techniques and languages: on backends and embedded systems.
  • Monitoring and troubleshooting of operational software systems.

Behavioural competencies:

  • Achieving results: having a structured and organised approach towards work; being able to set priorities and plan tasks with results in mind.
  • Learning and sharing knowledge: keeping up-to-date with developments in own field of expertise and readily absorbing new information. Sharing knowledge and expertise freely and willingly with others; coaching others to ensure knowledge transfer. Thinking “out of the box” and proposing fresh ideas, insights and methodologies.
  • Working in teams: understanding when teamwork is required to achieve the best results; including others accordingly and sharing information. Working well in groups and readily fitting into a team; participating fully and taking an active role in team activities.
  • Demonstrating flexibility: adapting quickly and resourcefully to shifting priorities and requirements. Instigating and promoting change as an opportunity for organisational development.

Language skills:

Spoken and written English, with the ability to draw-up technical specifications and/or scientific reports, and/or to make oral presentations. The knowledge of the French language or the willingness to acquire this rapidly would be an advantage.

Additional Information

Eligibility and closing date:

Diversity has been an integral part of CERN’s mission since its foundation and is an established value of the Organization. Employing a diverse workforce is central to our success. We welcome applications from all Member States and Associate Member States.

This vacancy will be filled as soon as possible, and applications should normally reach us no later than 23.59 CET 21st November 2023.

Employment Conditions

Contract type: Limited duration contract (5 years). Subject to certain conditions, holders of limited-duration contracts may apply for an indefinite position.

These functions require:

  • Stand-by duty; when required by the needs of the Organization.

Job grade: 6-7

Job reference: BE-CSS-FST-2023-143-LD

Benchmark Job Title: Computing Engineer

This job has expired.