C++ Software Developer (TE-VSC-VSM-2024-42-GRAE)

CERN - European Organization for Nuclear Research

Open positions at CERN
Logo of CERN


This is a Entry Level contract. More about Entry Level contracts.

Job Description

MolFlow+ and SynRad+ are open-source test-particle Monte Carlo simulators for ultra-high vacuum and synchrotron radiation, respectively. Developed at CERN since 2012, more than a thousand users are using them not only in accelerators, but also in the space, semiconductor and even gas transport industries.

The codes are written in C++, with the user interface in OpenGL. The two codes share part of their codebase and differ only in the actual physics. They run on all desktop operating systems and support different CPU architectures (x86 and ARM). They also have a command-line interface for automation and for cluster calculations with MPI. Parallel computing is achieved with OpenMP. The simulations are either static or time dependent.

There are several projects ongoing with the aim to upgrade the codes:

  • Modernizing the user interface. The current user interface uses pure OpenGL to render common elements (windows, buttons, fonts), and was designed in 2007 with the goal to handle huge data structures with reliable performance. Since then, modern UI libraries emerged, such as Qt, WxWidgets and DearImGui. A modernization effort is under way using the latter (immediate-mode UI), porting existing windows and interface parts to have a modern look and allowing rapid development of new elements. Part of the task is copying the existing look, and another part is creative implementation of modern technologies (ribbon menu, custom user layouts, docking, undo mechanism for common commands, support for high-DPI displays and Unicode characters)
  • Adding iterative simulations. Certain physical processes, like the accumulation of particles on an absorbing surface, depend on the history of the material. This cannot be simulated directly in an event-driven simulation. The solution is to break up the simulation to smaller time steps and evaluate surface parameters at the end of each step, then proceed to the next time slice. Such a mechanism already exists as an external Python script - the goal is to integrate it to the main interface of MolFlow+.
  • Adding background gas collisions The current physics assumes that particles are in the Free Molecular Flow regime (hence the name MolFlow). This regime, where collisions only happen with walls, can be extended to the viscous regime where particles can collide with a background gas, resulting in volume scattering. Although the physics governing this process is well known, integrating into MolFlow+ requires modifying the simulation kernel and adding visualization and diagnostic tools for this new process. Due to the large user base, and since MolFlow+ is a de-facto industry standard for ultra-high vacuum simulations, any improvements have a substantial impact and offer exceptional visibility across thousands of users and many institutes.

As a C++ Software Developer, you will:

  • Improve and maintain existing codes MolFlow+ and SynRad+, adding new features while maintaining compatibility with previous versions;
  • Test new versions, release with GitLab for five operating systems (Windows, Debian, and Fedora Linux, macOS Intel and ARM), manage changelogs and auto-updater;
  • Document new features on the website - Communicate with users: answer to questions, manage feature requests and treat bug reports through the public forum;
  • Use Gitlab issue tracker and manage technical debt;
  • Hold trainings to internal and external colleagues about usage of the codes;
  • Publish major scientific advances through conference proceedings or peer-reviewed articles.

More information here: https://molflow.web.cern.ch/

Who we are looking for

Required skills and/or knowledge

  • Experience with modern C++ and Git;
  • Fluent in English, the ability to work in French would be an advantage.

Desirable skills and/or knowledge

  • Experience with collaborative development (issue tracking, merge requests, Git submodules, through GitHub or GitLab);
  • Experience in developing user interfaces (Qt, DearImGui, WxWidgets or similar);
  • Experience in 3D modelling and graphics (OpenGL);
  • Experience with automated testing (GitHub or GitLab CI/CD, Google Test);
  • Parallel algorithms (Standard library threads or OpenMP or MPI);
  • Experience with codes simulating physics and/or ray tracing (Monte Carlo, fluid dynamics, lighting, heat transfer or other);
  • Web authoring tools (MkDocs, Drupal, WordPress, Discourse);
  • Experience with auto-updater mechanisms.

Eligibility criteria:

  • You are a national of a CERN Member or Associate Member State.
  • By the application deadline, you have a maximum of two years of professional experience since graduation in Computer Science or Applied Physics (or a related field) and your highest educational qualification is either a Bachelor's or Master's degree.
  • You have never had a CERN fellow or graduate contract before.
  • Applicants without a university degree are not eligible.
  • Applicants with a PhD are not eligible.

Additional Information

Job closing date: 14 April at 23h59 CEST

Job reference: TE-VSC-VSM-2024-42-GRAE

Contract duration: 24 months, with a possible extension up to 36 months maximum.

Target start date: 01-September-2024

This position requires:

  • Residence in the immediate vicinity of the Organization's installations.
  • A valid driving licence.

What we offer

  • A monthly stipend ranging between 5119 and 5631 Swiss Francs (net of tax).
  • Coverage by CERN's comprehensive health scheme (for yourself, your spouse and children), and membership of the CERN Pension Fund.
  • Depending on your individual circumstances: installation grant; family, child and infant allowances; payment of travel expenses at the beginning and end of contract.
  • 30 days of paid leave per year.
  • On-the-job and formal training at CERN as well as in-house language courses for English and/or French.

About us

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.

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.

Added 26 days ago - Updated 4 hours ago - Source: careers.cern