The mandate of the Infrastructure and Development Services group is focused on cloud technologies enabling interactive scientific computing services in HPC, including containerization, REST APIs and middleware, with a strong emphasis on preserving performance and scalability characteristics of the supercomputing ecosystem. Future technology evaluation and software development tasks related to other projects at CSCS are also within the scope of the group, as it is the performance analysis of scientific applications, benchmarks and infrastructure services.
Your tasks will include software development activities for the realization of scientific workflows. In particular configuration, packaging, and deployment of software systems across different high-end computing platforms is a primary area of interest. As part of the infrastructure-level software you will be conducting testing, deployment and performance benchmarking of platform services that are part of the CSCS infrastructure, which includes baremetal supercomputing deployments such as Piz Daint as well as programmable infrastructure like OpenStack clusters, object storage systems and software-defined networks.
You are expected to have a Master or PhD in computer science, mathematics, engineering or natural sciences and, depending on your level of qualifications, 2 to 4 years of experience with C++ or Python. An ideal candidate is expected to be able to demonstrate a strong understanding of how to apply the capabilities of the programming language to develop cloud and HPC software services that enable scientific workflows. Debugging and analysis skills, including the ability to perform regression and performance testing on HPC or large cloud infrastructures, are required. The candidate must be able to demonstrate software engineering skills and experience working with (but not limited to) agile principles, revision control, code reviews and test-driven development, as well as experience in deploying containers and accessing RESTful APIs. Knowledge about parallel applications using MPI or GPU accelerators is considered a plus, as is knowledge of other high-level programming languages such as Julia or Go. Linux-based, systems-level knowledge is highly desirable.