Research Software Engineer

80%-100%, Lugano, fixed-term

Project background

Your main role is to develop software libraries and tools for scientific computing and modernise the provision of the complex workflows and services required by the scientific community. You will contribute to developing performance-portable software for parallel multi-core and GPU-accelerated HPC architectures, working closely with application developers and domain scientists. The broad range of application domains includes weather and climate, electronic structure theory and linear algebra.

Job description

We are looking for candidates with sound knowledge and curiosity about computer science, software engineering and a solid understanding of C++ for developing performance-critical software and crafting robust and well-engineered solutions.

Experience with the following is preferred, though there will be ample opportunities to learn and gain more experience with all of the above skills on the job:

  • Development of numerical or scientific simulation software in C++.
  • Knowledge of node-level parallelism, multi-threading or GPU acceleration.
  • Development of distributed memory applications using MPI.
  • Development for GPUs using CUDA, HIP or Intel OneAPI.
  • Test-Driven Design and other Software Engineering methodologies.

Your profile

You should have a Bachelor’s degree in computer science, mathematics or natural sciences, preferably with Masters’s or PhD degrees or relevant industry experience. As an ETH employee, you will be working in a highly motivated team of Software Engineers with high-quality standards, in an international environment, and have an excellent command of English. We value the diversity of our team and particularly encourage women candidates to apply. We offer training and opportunities to grow. We work in hybrid mode with some office time and some remote working.​​​