ETH is one of the world's leading universities for science and technology. Scientific Software and Data Management (SSDM), within Scientific IT Services, is part of the central IT department. It develops software and data management solutions for research projects across ETH, in microbiology, astrophysics, engineering, architecture and more. SSDM provides a stimulating, flexible and family-friendly working environment. It is located in Zurich and Basel.
Project background
Software engineers in SSDM provide software solutions in a range of languages depending on current customer requirements, with Python, C++, Java and JavaScript our core languages, running on Linux with development on Macs. Developers in the team are assigned to projects according to their individual skills and background. Currently we have a vacancy to focus on scientific applications and developing computational code.
Job description
You will work with professors, postdocs and PhD students who lead the research and be engaged in the full life cycle of each project, from design to production support. You will play a direct part in choosing technologies and designing architectures. Depending on the project, you may act as the technical lead with other contributors to the codebase.
You will work individually or in small project groups but also will enjoy the benefits of working in a larger, friendly team with whom you can share ideas, learn from and engage with.
Your projects will depend on current customer requirements and they can range from a few months to several years. The main focus will be web application development and integrating systems. This may include optimizing, scaling, productionizing and packaging existing code. It may include automating computational pipelines or writing solutions from scratch.
Your responsibilities
Determining requirements through dialog with academic customers
Designing solutions and selecting appropriate architecture and tools
Developing software
DevOps activities such as continuous integration and containerization
Maintaining and harmonising customers’ code repositories
Testing and deploying your code
Documenting your work, providing regular progress reports and user training
Code review for other team members and engaging in wider team initiatives and discussions
The preferred location is Basel, with travel to Zurich also expected. A main location in Zurich could be negotiated.
Your profile
This position would suit a person with a personal as well as professional interest in software solutions and who has a natural thirst for knowledge.
As a minimum, you should have:
A Masters degree or PhD in computer science or a related scientific discipline, eg maths, physics, biology
Three years' experience developing code in Python including scientific packages such as Numpy and Pandas
Experience with Linux, including installing tools and system configuration
Experience working in a scientific or academic setting
Practical understanding of SQL and open-source databases
Good communication skills
Strong self-motivation and a desire to learn new skills
The following would also be an advantage:
Experience with DevOps tools and practices: Git, Docker and CI/CD platforms
C++, R and/or Matlab
Scientific visualization
High performance computing and coding for GPUs
Web development, eg with Django
Kubernetes
Postgres configuration and optimization
Project management experience
We offer
In the department IT Services, we are committed to flexible and family-friendly working models and a healthy work-life balance is important to us. ETH Zurich supports a policy of diversity as well as inclusion and we particularly encourage qualified female candidates to apply.