The term "research software engineer" (RSE) has become widely accepted in the ten years since it was coined. The next step is to understand the competencies required for the role.
This article is cross-posted from de-RSE.org. This article is published under the CC-BY-4.0 license.
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 (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 “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
The 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.
Author bios
The teachingRSE project has been working on the associated full and more complete publication in F1000Research since 2023. The project was initiated by Heidi Seibold who came up with the original idea for the deRSE23 workshop in Paderborn. Heidi was joined by Jeremy Cohen, Florian Goth, Renato Alves, Jan Philipp Thiele, and Samantha Wittke to organise the initial deRSE23 workshop. Over the course of further workshops like the un-deRSE23 workshop in Jena, and the deRSE24 in Würzburg, the content of the paper was further refined and we are grateful to all particpants! In addition to the workshops the ideas were further developed during weekly meetings led by Florian Goth, together with the authors of the F1000Research paper, Renato Alves, Matthias Braun, Leyla Jael Castro, Gerasimos Chourdakis, Simon Christ, Jeremy Cohen, Stephan Druskat, Fredo Erxleben, Jean-Noël Grad, Magnus Hagdorn, Toby Hodges, Guido Juckeland, Dominic Kempf, Anna-Lena Lamprecht, Jan Linxweiler, Frank Löffler, Michele Martone, Moritz Schwarzmeier, Heidi Seibold, Jan Philipp Thiele, Harald von Waldow, and Samantha Wittke. The group gained more recognition, and the teachingRSE project is now an official working group of the de-RSE society and the special interest group on research software of the German Informatics Society (GI).