Identifying the Foundational Competencies of a Research Software Engineer

The TeachingRSE collaboration, October 8, 2024


Only a little over a decade ago, the term Research Software Engineer (RSE) didn’t exist. Now we find ourselves in a position where the term is increasingly widely accepted and research institutions are hiring RSEs to provide the vitally important skills that they need to support and undertake modern research.

What defines an RSE?

So what, or who, exactly is an RSE? Ask three people for a definition of RSE, and aside from the common words “software” and “research”, you’re likely to get three different answers! This is because the space in which RSEs work, and the work that they might do, is not always straightforward to define, and so are their foundational competencies.

RSEs inhabit a previously “hidden space” - the wide gap between the work of researchers in an academic institution and the work of professional service staff whose roles can include everything from finance and student administration to managers of enterprise computing infrastructure. While the work of an RSE, of course, includes software development, RSEs at one end of the spectrum representing this hidden space will have roles that look very much like that of a researcher or academic. At the other end of the spectrum, the role of an RSE will look very much like that of a professional software engineer working in an industry environment. While an RSE undoubtedly writes software, their role is defined by a much wider range of skills, competencies and experience.

Generic definitions of an RSE can be helpful - a common such definition generally highlights that “an RSE is someone who applies specialist software development skills to support and undertake research tasks”. Nonetheless, while not incorrect, this definition masks a vast amount of complexity that warrants a greater discussion.

The foundational competencies of an RSE

Given this complicated and rapidly developing space, the authors of arXiv:2311.11457 (update: now for open peer-review at F1000Research), the teachingRSE collaboration, set out to better understand and to identify the foundational competencies of a Research Software Engineer.

The initial team of Heidi Seibold, Jeremy Cohen, Florian Goth, Philipp Schäfer and Samantha Wittke ran a workshop session, “Teaching and Learning Research Software Engineering”, at the German RSE conference in Paderborn, Germany in February 2023 (deRSE23) which initiated the discussions to understand what exactly the competencies of an RSE are. The community was integrated early-on through multiple workshops (at deRSE23 in Paderborn, un-deRSE23 in Jena, and deRSE24 in Würzburg). While largely based around a core group of members of the German RSE community - de-RSE - the collaboration also had international input to ensure representation of the wider international perspective in resulting outputs.

The length of time spent on this work and the very wide range of inputs and perspectives provided serves to highlight the inherent complexity in identifying the foundational competencies and responsibilities of a Research Software Engineer.

The paper

First page of the position 002 PDF.

Foundational Competencies and Responsibilities of a Research Software Engineer” works through the process of understanding what makes up the role of an RSE. It starts with some general background and terminology before highlighting what the collaboration worked out as the key values of an RSE - what RSEs are trying to achieve in their role and the values that underpin that work. The authors then look at the competencies themselves, identified through extensive discussion and debate about what RSEs do and how they do it. These skills are grouped into those that relate directly to software, those that are more research related and those that are communication focused. The collaboration identifies these three areas as the core of what an RSE provides - specialist, high-quality software engineering knowledge, an understanding of the research environment (potentially working as a direct contributor to research itself), and the ability to communicate well and work highly effectively with researchers who may not have a computational background, IT savvy personnel who may not have a research background, and managers who may have neither.

After defining the foundational competencies, the authors consider career levels - what should RSEs be expected to know and at what level of detail at different career stages? Recognising that researchers and academics increasingly expect to be able to apply some technical skills themselves the collaboration pins down the RSE skills that researchers and academics might want to learn to support this.

Finally, focusing on the fact that RSEs can have a range of very different roles, the authors look at RSE specialisations, highlighting a number of different roles that RSEs might hold that involve the application of specialist knowledge in related areas. This includes domain-specific RSEs, who have, and use, specialist research domain knowledge, in addition to technical skills. The authors also describe a number of other technical specialisations including data, infrastructure, High Performance Computing and Machine Learning-focused RSEs.

Find out more, join the discussion

A pre-print has been adopted as the second official position paper of de-RSE. As part of the goal to further develop the discussion on this work, to take the findings to a wider audience, and develop further research in this area, the authors are also exploring journal publication options for the final version of the paper. If you’d like to join the teachingRSE collaboration and participate in the discussions and future work, get in touch with find our contact details in our github repository.

Update (2024-12-02)

The paper is now published at F1000 under the doi 10.12688/f1000research.157778.1 veröffentlicht and is awaiting peer review.

This blog post is published under the CC BY 4.0 license. Re-posts are encouraged and should link back to the original.