Published 26th November 2021
Can you describe your background and your current role?
My background is an academic one earning my PhD in Astrophysics from the University of Leicester in 2018. I studied Gamma Ray Bursts (powerful explosions that occur when massive stars die or neutron stars merge) and applied Bayesian inference and Monte Carlo methods to assess the likelihood that certain models could explain the more exotic bursts in the tails of the population distributions.
I didn’t stay in academia after my PhD, however, and instead pursued a career in software engineering. I spent two years as a research engineer where a large part of my role involved making upstream contributions to and engaging in open source communities, particularly JupyterHub and Binder. I picked up advanced technical skills such as Docker and Kubernetes, alongside community building and leadership skills.
I am now an Open Source Infrastructure Engineer at a non-profit start-up that provides robust, scalable, scientific research environments, powered by JupyterHub in the cloud, to research and educational institutions around the world. Particularly, I am working with the Pangeo community to support the operations and development of their cloud infrastructure. This still involves a lot of the technical, community-based, and open source skills that I developed in my previous RSE role.
How did you become an RSE?
After my PhD, I was looking for Data Science jobs mostly because I was told that kind of role matched up most closely with my skillset and I still wasn’t sure exactly what kind of career I wanted to pursue. I interviewed (and was hired) by the Research Engineering team at the Alan Turing Institute, as a Research Data Scientist immediately after finishing my PhD. Two things then happened in tandem. I had a very enjoyable experience beginning with work with Project Binder and learning about cloud infrastructure, whilst also having a less than enjoyable experience on a more Data Science oriented project and trying to wrap my head around Gaussian Processes. This led me to change my job title officially to Research Software Engineer, and I believe I’m still the only member of that team to do so! Therefore I believe that the RSE role is as much about how the person identifies as it is the work it describes.
When did you first hear the term “RSE”?
I wasn’t aware of the role during my academic career so I first heard the term “RSE” when I joined The Turing and the dynamics of the Research Engineering team were being explained to me.
What is your favourite thing about your work and being an RSE?
I really enjoy when I get to work on projects that have openness built into them in ways such that we can engage with other stakeholders in the domain space, make upstream contributions to well-established projects, and generally improve the experience for everyone doing computational science and building the tools that support that research.
And what is the least favourite?
While I originally thought being assigned to two projects simultaneously would give me freedom to fluidly switch between them as one or the other became blocked, my practical experience of this wasn’t as fulfilling. The implicit expectation that is placed upon RSEs assigned to multiple projects and given the freedom to divide their time between them is that they also become their own backlog manager. Prioritising tasks across projects well requires a “forest rather than the trees” perspective, which I think is in contrast to the kind of deep-dive into development/a domain that RSEs are accustomed to. As a result, context switching between projects became a much bigger drain on my time and energy than I would’ve liked.
Did you already have any interactions with the RSE Society and the RSE community? If yes, which?
I didn’t previously have any interactions with the wider RSE community until RSE Con 2019. But that was absolutely a “coming home” experience for me in terms of my career.
Do you see yourself as an academic, researcher, software engineer, technician…? All of it? Something else? A mix of one or two terms?
I’m definitely an engineer. This mostly covers infrastructure, sysadmin and site reliability engineering style tasks in my current role, with less focus on software engineering except in my “hobby” projects.
While I don’t have hands-on time with data and paper-writing anymore (“traditional” research, whatever that means), I still find use for my research training since designing infrastructure and cloud workflows that will be used by researchers still involves answering open-ended, research-style questions and all the creative problem-solving that comes with that.
What do you see as your most likely future career path from here? And what would be your ideal career path?
Data science and research is only beginning its journey into cloud and the technology is developing rapidly bringing more potential pathways for cloud-native research. Therefore, with my skillset and the current landscape for research in the cloud, I think I will have a career in cloud infrastructure for research and education for a while yet.
Ideally, I would like to supplement this by becoming more embedded in open source communities at a leadership and community level. Projects such as Jupyter and the Scientific Python stack are now so intrinsic to modern, computational research that I firmly believe that upstream contributions from that research is low-hanging fruit in terms of demonstrating the wide-reaching impact of that research. Implementing those upstream contributions isn’t so easily achievable! And I would love to help facilitate that more.
In your view, how could RSEs be better supported in their work? What do you need? What is missing?
I still feel the conversation around Research Software Engineering is still quite university-centric, hinging around whether your group is embedded in a department or is centralised in the institution. Throughout my career at The Turing and then moving to a non-profit, I never felt either of these narratives fit my scenario and I think overlooks the fact that great research doesn’t only happen in academic institutions anymore. I’m glad to see this will be changing with the RSE Landscape work that has been ongoing at the Society though.
Which question did we not ask you which we should have (and what is the answer)?
What’s the most unexpected part about being a RSE?
Using version control and containers, writing modular Python libraries and complex continuous integration workflows, and other technical skills are only part of an RSE’s skillset. Another very important aspect is communicating and collaborating with an interdisciplinary, multi-stakeholder team. This method of collaboration was radically different to anything I, at least, had experienced as an academic.
What advice do you have to individuals looking to start a career in Research Software Engineering?
Don’t underestimate the skills that you have. RSEs can come from many different backgrounds and there is no one single path into this career. Instead, what perspectives and specialties can you bring to a research project? What’s your appetite for trying out new approaches and technologies?