Hiring is done on a rolling basis. Specific openings will be posted here, but general inquiries are also welcome. Read carefully the instructions before applying: we like to give proper consideration to each serious candidature, but in order to do so we need to quickly sift through the many mass-applications that we receive and that have no connection with individual projects or the general research program of the laboratory.
Please consider that in order to perform a preliminary screening, all the inquiries that do not follow these guidelines might be silently ignored.
Research Software Engineer
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.
Machine-learning for atomistic modeling
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. The salary scale is expected to follow the official ETH domain scale for post-doctoral positions.
Job description
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.
Your 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, engineering or natural sciences, preferably with a masters, Ph.D., or relevant industry experience.
Your workplace
As an EPFL employee, you will be working in an international environment. We value the diversity of our team and particularly encourage women candidates to apply. In line with our values, EPFL encourages an inclusive culture. We promote equality of opportunity, value diversity and nurture a working and learning environment in which the rights and dignity of all our staff and students are respected.