The Swiss National Supercomputing Centre (CSCS) is operated by ETH Zurich and its headquarters are located in Lugano, Switzerland. CSCS develops and provides key supercomputing capabilities for solving important problems in science and society. CSCS is leading an effort to develop scientific software and libraries for HPC platforms. This work involves close collaboration with domain scientists and working on cutting edge HPC technologies, to ensure that scientists will be able to fully utilize modern HPC systems. To this end, CSCS has open positions for
Scientific Software Developers in Zurich or Lugano
The main role of this position is to develop software libraries and tools for scientific computing, specifically performance-portable C++ libraries for massively parallel many-core and GPU-accelerated HPC architectures and their Python frontends. He or she will also be required to work closely with application developers and domain scientists to gather requirements for further development and to integrate these libraries in established simulation packages. Performance modeling and analysis are important to predict performance on future systems. The broad range of application domains includes electronic structure theory, linear algebra, geophysics, and weather and climate. This position is funded on a project basis, and contracts are offered for a two-year period. The location will be fixed based on mutual agreement.
We are looking for candidates with a sound knowledge of computer science and enthusiasm for software development. Strong working knowledge of C++, our main development language, as well as expertise in the development of numerical or scientific simulation software, or HPC performance tools, are required. Experience with HPC technologies, such as node-level parallelism, multi-threading or GPU acceleration is considered a plus. Experience with Python for numerical simulation is beneficial. Mathematical and domain science knowledge enable the candidate to write code starting from a mathematical model or reference implementations in other computer languages. She or he should have a Master or Ph.D. in computer science, computational science, mathematics or natural sciences. Experience with scientific software development as part of a team, version control and release management, integration and unit testing, containerization, or software engineering is beneficial. Close collaboration with domain scientists requires taking initiative, and will benefit from strong interpersonal and communication skills. As an ETH employee, you should be enthusiastic about working in an international environment, and have an excellent command of English. We value the diversity of our team and particularly encourage female candidates to apply.