We are an open community for anyone at Imperial involved in building or working with research software, regardless of level of expertise or research background. The community provides opportunities for meeting other researchers with similar interests and promotes the learning of new skills, technologies and best practices. Together we can enhance the quality of research software at Imperial.
Despite their important role in modern computational research, there can be a lack of long-term opportunities or sustainability of roles for RSEs or researchers who focus on software development. The Imperial RSE community is open to anyone in Imperial who is interested in computational research and software development, including RSEs themselves and the computational scientists, researchers and academics who work with them. See how you can get involved.
Research Software Engineers
Imperial is home to a huge range of computational software and the individuals who write it. This is true not only within the areas covered by the College’s Centre for Computational Methods in Science and Engineering (CMSE) but across the full array of science, technology and medicine research within the College.
With the complexity of computing infrastructure increasing and new paradigms such as Infrastructure-as-a-Service clouds, massively multi-core CPUs and GPGPUs become widely used, managing software development and research can be very challenging. Individuals are increasingly making a choice to focus on either domain research or on computational software development. The term "Research Software Engineer" covers a number of different profiles including individuals whose long-term aim is to have an academic position and those who wish to focus on software development. Whatever their long-term aims, RSEs frequently form an important and valued element of a research group or team.
Software development has long been a requirement in scientific research groups with this work being carried out by the researchers themselves, or by domain developers who have a background in and knowledge of the scientific field in question. While such individuals are frequently highly competent developers who produce top quality scientific code, they also need to balance their effort spent on software development with addressing their core scientific aims in order to support their research career by publishing and obtaining research funding.
While building core scientific algorithms and methods is still an important requirement, creating the supporting environment to enable these codes to run efficiently on modern infrastructure is often a step too far. The steep learning curve required to work with such infrastructure and the increasingly large codebases and development teams that require software management processes make it impractical or even impossible for scientific researchers to further their scientific career while focusing on software development.
The wide technical skill-set required to undertake and manage modern High Performance Computing (HPC) software development has led to the emergence of individuals who focus on these capabilities and have the knowledge to build and deploy code to complex infrastructure while supporting the effective long-term sustainability and maintenance of software through the use of industry standard software management approaches. These individuals are Research Software Engineers (RSEs). RSEs may have strong domain knowledge and their RSE role is, at present, often not officially recognised. Nonetheless, as HPC infrastructure and software processes become more advanced, it’s clear that there will be an increasing need for such individuals and they will become more common in the research environment.