Research Software Engineer at Durham University

Durham Univesity, United Kingdom

Posted

on-site · full-time · Visa sponsorship

Apply for this role at Durham University

Responsibilities:
- Provide Research Software Engineering support to DiRAC and the ICC, improving major scientific codes used in cosmology, astrophysics and particle physics.
- Optimise code performance: profiling, algorithm improvements, parallel scaling and memory use reduction.
- Port and tune applications for different compute architectures (including GPUs) and test on prototype hardware.
- Design and run performance benchmarks, analyse results, and recommend hardware/software changes.
- Collaborate with researchers to gather requirements, implement features, and validate scientific outputs.
- Maintain reproducible workflows, documentation, and user support for HPC services.

Requirements:
- Degree in a relevant subject; PhD or near-completion preferred, or equivalent experience in HPC/software engineering.
- Strong programming in C/C++ and Python; Fortran experience desirable.
- Solid knowledge of parallel programming (MPI, OpenMP) and GPU programming frameworks.
- Practical experience with profiling tools, HPC schedulers, and large-scale storage (HDF5, Lustre).
- Familiarity with Linux environments, version control and software testing practices.
- Good communication and teamwork skills to work across scientific and technical teams; ability to prioritise tasks and document work clearly.

All roles at Durham University