EPFL, the Swiss Federal Institute of Technology in Lausanne, is one of the most dynamic university campuses in Europe and ranks among the top 20 universities worldwide. The EPFL employs more than 6,500 people supporting the three main missions of the institutions: education, research and innovation. The EPFL campus offers an exceptional working environment at the heart of a community of more than 18,500 people, including over 14,000 students and 4,000 researchers from more than 120 different countries.

Research Software Engineer

Mission

The National Center of Competence in Research (NCCR) MARVEL (https://nccr-marvel.ch/), head-quartered at EPFL, is a center funded by the Swiss National Science Foundation to develop and apply cutting-edge modeling techniques to accelerate the computational design and discovery of novel materials. The NCCR supports in particular infrastructural efforts aimed at providing long-lasting impact on the Swiss and international research landscape in its field.


One of the thrusts of the NCCR MARVEL involves the development of software tools to perform accurate and efficient simulations of the microscopic properties of materials based on machine-learning techniques. This effort is led by the groups of Profs. Ceriotti (https://cosmo.epfl.ch) and Prof. Corminboeuf (https://lcmd.epfl.ch), with contribution from Prof Natarajan (https://epfl-mades.github.io) at EPFL, but underlies many of the research lines of the NCCR. In line with the long-term goals of the project, it is essential that these tools follow good software engineering practices, are well-documented, and are easy to access by the scientific community, in Switzerland and abroad. In order to support this effort, we advertise a position for a Research Software Engineer at EPFL.

The position is initially open for 1 year, with possibility to renew the contract upon mutual agreement and according to funding availability.

 

Main duties and responsibilities

  • You will bring software development expertise to three scientific groups at EPFL, all part of the NCCR MARVEL. You will contribute to the development, packaging, and maintenance of multiple modular scientific software tools in interaction with each other. These include tools to compute machine learning descriptors, train deep and shallow machine learning models, extract molecular information from crystal structures, analyze and visualize the results of experiments.
  • You will work closely with domain scientist and existing research software engineers to bring projects to completion and ensure adequation with the needs of the scientific community. Some examples of projects are detailed below.

 

Project A: Database and interface for cell2mol

 

  • You will plan and develop a NoSQL-based database system for the outputs of the cell2mol software (https://github.com/lcmd-epfl/cell2mol). You will then interface this database system with a search engine for fast exploration of existing outputs. Finally, you will create a visualization and analysis platform that is available to both internal and external users; streamlining the use of cell2mol in end-to-end research workflow.

 

Project B: Packaging and optimizing Machine Learning tools

 

  • You will help create Python packages (PyPI wheels and conda packages) for tools based on PyTorch. Some tools are already accelerated with custom C++ and CUDA code, making them very efficient at their respective tasks. You will help create pre-built distributions of these packages, making the acceleration available and easy to use by all members of the community. Some tools are still at the proof-of-concept stage, and you will help optimizing these, possibly by introducing new custom native code.

 

Profile

You have a sound knowledge of computer science, code optimization and its principles, and an understanding of the application domains, i.e. atomic-scale simulations in chemistry, and materials science, as well as crystal structure and transition metal complexes. The software stack is Python-centric, but also includes components in compiled languages (C, C++, Rust, CUDA), as well as tools built using the web platform.

Having some of the following qualifications is preferred, as well as a willingness to learn new skills and gain more experience on the job:

 

  • Familiarity with the Python programming language
  • Familiarity with one compiled programming language (C, C++, Fortran, Rust)
  • Familiarity with git and collaborative software development
  • Familiarity with data science tools and GUI development using web technologies
  • Familiarity with NoSQL databases such as MongoDB
  • Familiarity with Python packaging ecosystem (wheels, PyPI, conda-forge)
  • Familiarity with one machine learning framework (PyTorch, TensorFlow, JAX)

 

You should have a bachelor’s degree in computer science, mathematics or natural sciences, preferably with a masters, Ph.D., or relevant industry experience.

 

Informations

Contract Start Date : 03/01/2025 

Activity Rate Min : 80.00 

Activity Rate Max : 100.00 

Contract Type: CDD

Duration: 1 year 

Reference: 1323