Research Software Engineer: Overview#

Research Software Engineers (RSEs) are programmers with scientific backgrounds who play increasingly critical roles in the conduct of research and production of research software tools. They are highly skilled team members who can also conduct their own research as part of their role.

What do Research Software Engineers do?#

RSEs work on research projects. They may be assigned to projects based on skills or background from a pool of other RSEs, or be specifically hired to work on a project.

Additionally, RSEs can also be PIs and run their own independent research projects, depending on the institution and policies of the projects they are working on.

Who are Research Software Engineers?#

RSEs typically have a scientific or research background, often developing programming skills during masters or doctoral studies. You can find out more about the backgrounds of RSEs through the Software Sustinability Institute’s 2018 Survey.

What qualifications or skills do you need to be a Research Software Engineer?#

There are not specific formal qualifications needed to become an RSE, but the majority will have at least one advanced degree (masters or doctoral level). However, all RSEs are able to program, with the majority coding in Python, SQL, R, C/C++ or JavaScript. RSEs are also likely to understand concepts such as agile development, integration and testing, software architecture, and version control.

Challenges for Research Software Engineers#

  • Lack of formal pathways for development

  • Production of software and tools not always recognised as a research output

  • RSEs not viewed as researchers in their own right

  • Adjusting to working on different projects, possibly far from their original background

Benefits of having Research Software Engineers#

  • Highly technical skills that support researchers who cannot program

  • Sharing of best practices in research software engineering across projects

  • Apply cross-disciplinary knowledge to different projects

  • Software will be more reliable and robust, supporting reuse and reproducibility

Organisations that support Research Software Engineers#

Summary#

Research Software Engineers are highly skilled, valuable members of any research group that is conducting computational research. They bring technical programming skills as well as best practices from software architecture and open source development to academic research. Some also conduct their own independent research projects.