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