If you work in a lab, you’re collecting data. And as the volume of data increases, many researchers find they can’t process or analyze that data in a spreadsheet or stats program anymore. Instead, they’re writing code in Python, R, or C++ to do that processing for them.
But this creates a new challenge: what happens to that code over time? Can your Python script be shared with other labs who might find it useful? When the graduate student who wrote the analysis package graduates, is there anyone around to maintain and update it so the lab can continue to reap the benefits?
Unfortunately, many researchers who know how to code don’t know how to shepherd that resource so it can be useful to others. But luckily, there are experts who know how to help.
Introducing the Research Software Engineer
This week, we talk with Nicole Brewer, a Research Software Engineer (RSE), about her quest to make scientific computing accessible.
We learn about the how scientific computing has expanded over the last 20 years, but academics didn’t always have the skills and practices to make their code useful to others.
Universities recognized the value of dedicated software engineers, but basically treated them as an afterthought. They hired programmers, but didn’t pay them a competitive salary, and didn’t offer opportunities to advance.
In fact, in a survey of 10,000 academic job postings, about 400 were for software related roles, but they used 200 different titles for the job!
That’s when a group of researchers got together to define the Research Software Engineering role. They felt that by standardizing and highlighting this valuable service, they could improve academic research by attracting and retaining talented programmers.
The Job You Didn’t Know You’d Love
Nicole shares her experience as a Research Software engineer, and how it has allowed her to combine her love of coding with her love of science.
“We work with everyone. Everyone needs software, right?” she says.
“We work with an economics group. We work with a bioinformatics group and psychology and engineering – the whole gamut… I get to interact with all kinds of sciences and that feels really meaningful to me.”
That work includes everything from making a user interface for filtering data to running simulations on a supercomputer cluster.
And like a consultant, Nicole may be juggling several projects at once!
“One of the consequences of pulling in our own funding as a group is that we have, I don’t know, 12 grants proposals on the table at any one time as a group, and everyone is working on, like, three projects. So that requires a lot of context switching and it is terribly interesting.”
How to Get Started
But Nicole is a bit of a trailblazer – as the RSE role expands and gains momentum, there will hopefully be less need for outside funding, and more recognition of the value an RSE provides.
There are organizations dedicated to spreading that message. Research Software Engineers International recognizes several regional organizations, including US-RSE in the United States. Students, engineers, and RSE allies can sign up for free to find job listings, a Slack channel, events, and training resources.
For those just getting started, Nicole recommends the Software Carpentry sessions – both workshops and online experiences that help researchers learn the basics of software development.
As research and computing intertwine, we’re glad to know that Research Software Engineers are stepping in to bridge the gap and expand access to the latest scientific tools.