Software Engineer (IT-SC-RD-2020-49-LD)


  • Switzerland
  • €Negotiable
  • Contract

Apply for this job  

Job ref: N/A

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 http://home.cern.

Job Description


Are you a talented software engineer, passionate about cross-community computing projects? Do you have in-depth experience with modern C++ in the Linux/UNIX environment? Do you enjoy working on significant development of code that uses either GPUs or FPGAs? Then join the Scientific Computing group at the CERN IT Department for a unique challenge as the next step in your career. CERN, take part!

The experiments at the Large Hadron Collider use software systems with several million lines of complex code  to analyse the many Peta Bytes of data recorded every year. In the near future the LHC will be upgraded to the High Luminosity-LHC (HL-LHC), pushing their computing needs to the exascale. Also the computing fabric is expected to change radically and it is likely that a large fraction of the resources will originate from accelerators such as GPUs and FPGAs. Evolving the software to meet these requirements will be challenging in many ways.

The Research and Development team works in close collaboration with the LHC experiments and other teams on solving the HL-LHC challenge. The team's efforts cover many aspects of efficiency and performance. These range from the development of performance and resource utilisation analysis tools, statistical analysis of data access efficiencies and fabric cost modeling to compiler performance studies and evaluation of accelerator abstraction frameworks such as oneApi and Alpaka.

More information on the IT Department is at: http://cern.ch/it.

More information about WLCG project is at: https://wlcg.web.cern.ch/


The selected candidate will join the activities of the RD section of the Scientific Computing Collaboration (SC) group.

Your main functions will include:

  • Software development for the cross-community computing projects.
  • Research and development of the effective use of computing accelerators.
  • Development of concepts to improve the portability and sustainability of HEP code.
  • Contribution to training and dissemination activities in these areas.

As a Software Engineer, you will work on several of the following topics:

  • Contribute to cross-community development projects. In these projects the team collaborates with the core development teams of the large scientific software packages to improve their performance and adapt them to the changes in the computing infrastructure.
  • Evaluate and apply libraries and frameworks for the abstraction of hardware accelerators. The basis of these studies will be the work with components of the HEP software stack such as GEANT or event generator code.
  • Help the community in the process to make efficient use of modern HPC systems. The focus will be to develop strategies based on practical experience.
  • HEP code has a very long lifetime and the code contains contributions of hundred scientists, with many of them being no longer part of the community. Based on your work with these codes you will suggest approaches and methodologies to improve portability and sustainability.
  • Prepare training and information material related to your field of expertise and actively communicate the results of your work.
  • Actively build collaborative relationships with the developer and user communities of HEP software at CERN, by participating in workshops, conferences and informal exchange of information.


Master's degree or equivalent relevant experience in the field of software engineering or a related field.


The candidate should have demonstrated practical experience in several of the following areas and technologies:

  • In-depth experience with modern C++ in the Linux/UNIX environment:
    • this includes build, debug and performance analysis tools, etc.
  • Significant development of code that uses accelerators, either GPUs or FPGAs.
  • Experience in refactoring/porting of a large code base ( >100k sloc).
  • Either a background in the support of scientific code on HPC systems, or some familiarity with components of the HEP software stack.
  • Experience with accelerator abstraction frameworks like Alpaka, Kokos, oneApi, SYCL, OpenCL, OpenMP etc.

Technical competencies:

  • Development of application software: is familiar with state of the art software development tools.
  • Testing, diagnosing and optimization of software.
  • Re-use, refactoring, integration and porting of existing software.
  • Knowledge and application of software life-cycle tools and procedures.
  • Architecture and design of ICT systems.
  • User relationship management.

Behavioural competencies:

  • Achieving results: delivering prompt and efficient service taking into account customer needs.
  • Demonstrating flexibility: readily absorbing new techniques and working practices; proposing new or improved ways of working.
  • Solving problems: identifying, defining and assessing problems, taking action to address them; adopting a pragmatic approach; understanding the value of adopting generic rather than 'gold -plated' technical solutions.
  • Learning and sharing knowledge: sharing knowledge and expertise freely and willingly with others; coaching others to ensure knowledge transfer.
  • Communicating effectively: utilising effective negotiation techniques to achieve long-term results acceptable to all parties involved.

Language skills:

  • Good knowledge of English is required; ability to draw-up technical specifications and/or scientific reports and to make oral presentations.
  • Basic knowledge of French or an undertaking to acquire it rapidly.

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 08.04.2020

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:

  • Work during nights, Sundays and official holidays, when required by the needs of the Organization.
  • Stand-by duty, when required by the needs of the Organization.

Job grade: 6-7

Job reference: IT-SC-RD-2020-49-LD

Benchmark Job Title: Computing Engineer

Please make sure you have all the documents needed to hand as you start your application, as once it is submitted, you will not be able to upload any documents or edit your application further


Share this job