Advanced Research Computing


Research Software Engineers

Combining academic research experience with expertise in good software engineering principles, we collaborate with researchers in all fields.

Computationally based research has the potential to set the highest standards for openness, reproducibility, and reliability in research methods. However, a lack of appreciation for the significance of software as a research output has often led to software created in research institutions being treated as a secondary concern. This results in fragile code that is generally not sustainable or usable beyond the lifetime of a given project, and is hard for other researchers to read and understand. Whilst commercial software engineers tend to follow a more disciplined approach to software development, collaborations with academia can fail due to lack of understanding of the research context. 

Research Software Engineers (RSEs; also known as Research Software Developers, HPC Programmers, Scientific Programmers, …) combine academic research experience with expertise in good software engineering principles. We provide a service which helps researchers to build more readable, reliable, and efficient code. Our work is not just about producing software on behalf of researchers; we work collaboratively, providing the tools, advice and training researchers need so they can follow best practice and continue to develop sustainable software themselves in future. 

We also work with partners such as the Software Sustainability Institute and Society of Research Software Engineering to advocate on behalf of research programmers for software as a first-class research output. As with all ARC’s professions, Research Software Engineers are an important part of the twenty-first century research team and building a stable home for these skills in academia will help secure for research the benefits of a high quality, sustainable software infrastructure. We are keen to engage with research groups from across UCL who are developing their own software to build the wider RSE community and learn from each other. 

Our goal is to enhance UCL's capacity to produce high quality research software, from the simplest scripts to complex simulations running on state-of-the-art supercomputers. ARC’s RSEs collaborate with research colleagues from across UCL to construct, improve, and maintain codes used for modelling, analysis, synthesis, simulation and more. We can rapidly assimilate research context through publications and conversation with research groups, understand the computational algorithms, requirements and interfaces needed within the research effort, and construct high-quality software for research colleagues which will result in a sustained impact on their research programme. The team also provides consulting on software practices, techniques, design, and architecture to research groups, helping to build robust and maintainable research software.