Software Engineer (BE-CSS-FST-2022-140-LD)
- Geneva, Switzerland
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 radio frequency cavities, beam measurement instruments and much more. 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, 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:
- Communicate 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.
- Participate in the development of the Accelerator Timing software to coordinate thousands of accelerator devices.
- Collaborate and share knowledge and solutions with 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.
- 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.
- 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 in C programming for embedded systems, System-on-Chip (SoC) or simple microprocessors (bare metal).
- Experience with Linux compilation toolchains and build systems.
- Experience with communication protocols and networking stacks.
- Experience in modern FPGA development (VHDL).
- Knowledge of programming techniques and languages: including object-oriented programming principles, on backends and embedded systems.
- Knowledge and application of software life-cycle tools and procedures: including DevOps.
- Development of low-level software for real-time systems.
- Testing, diagnosing and optimization of software.
- Monitoring and troubleshooting of operational software systems.
- 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.
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.
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 midnight CET 30th November 2022.
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 reference: BE-CSS-FST-2022-140-LD
Benchmark Job Title: Computing Engineer