SAM MALONEY

Position: Research Software Engineer
Institute: Jülich Supercomputing Centre (JSC), Forschungszentrum Jülich
Academic Background: BSc in Electrical Engineering (University of Alberta), MSc in Computational Science and Engineering (ETH Zürich), PhD in Physics (University of Warwick)
Like many Research Software Engineers, Sam Maloney didn't set out to become one. His path took him through engineering, computational science, and physics before he discovered a role that brought those interests together.
Sam first encountered the term Research Software Engineer during his PhD.
"It's a good term to cover the slightly nebulous place in the middle. You aren't a traditional software engineer, but you're doing the same sort of work, but it includes the research aspect."
For him, the role combines several different disciplines.
"With RSE it is many things. It is applied math, applied computer science, applied domain science..."
The Journey
During his undergraduate degree in Canada, Sam completed several industry placements, including one with the Canadian National Railway. The experience helped him realise he was looking for a career where each project would bring new challenges rather than the same routine.
Research placements offered that variety, but it was a computational science simulation course that sparked his interest in research software.
"I realized I liked working with computers. Seeing aspects of what I liked and how to fuse it—if you put them together, you're doing new things all the time."
That experience led him to pursue a Master's in Computational Science and Engineering and later a PhD in Physics. Looking back, he believes that exposing undergraduate students to research software earlier would help more people discover the field.
Learning Through Software
Sam's programming journey has been a combination of self-learning and formal education. He first started programming on a graphing calculator in high school, continued through university, and built on that foundation through projects during his Master's and PhD. Today, he works primarily in C/C++ and Python, having previously used MATLAB before moving to open-source tools.
Python is the language he uses most because it allows him to develop quickly, while C++ provides the performance needed for many research applications. He's also interested in continuing to learn new languages.
"There are other languages I want to learn. I hear people talk about Rust and want to try it."
For Sam, learning a programming language isn't just about writing code that works—it's about understanding the concepts behind it.
While formal courses helped build a foundation, he believes real understanding comes from applying those concepts to real problems.
"Most of the learning happens when you actually have a project and actually do something with it."
Over time, he also came to appreciate the value of formal documentation.
"As boring as it is, going to the formal documentation is helpful. I didn't appreciate that enough until later."
He explains that understanding the terminology and concepts behind a language makes it easier to solve new problems.
Building Research Software
One aspect of programming that Sam appreciates is the rapid feedback it provides.
"Coding has a nice feedback cycle. When I was working in a lab there is a long feedback between developing, creating, testing, redesigning—it can take a long time. With coding you get quick feedback. Try something, run the test, tweak it."
He compares programming vs working in an experimental lab.
"It makes it like a sandbox you can go in and play. With experiments it can be expensive to play, but with code you can test crazy ideas if you want to."
Today, his work combines software development with testing, deployment, planning, and collaborating with researchers. Throughout that work, he has developed a strong appreciation for software quality and the role it plays in good science.
"If your code base is in a good shape your science is better and faster."
His advice to anyone developing research software is straightforward.
"Version control is helpful no matter what you are doing. It is hard to see in the beginning, but if you actually learn it, it makes your work more effective later."
Current Work
Today, Sam is part of the SEANERGYS project, a EuroHPC initiative developing a software stack for more energy-efficient high-performance computing systems.
"Software quality is front and centre to all we are doing. We don't have to fight anyone on why documentation or version control is important."
Alongside developing new features, he’s also excited by the opportunity to encourage wider adoption of the software and help grow its user community.
"I've been doing a lot of work on packaging it up, making it more accessible to help push acceptance and uptake. The idea of building the community base of it is also exciting."
Working at Forschungszentrum Jülich
For Sam, one of the biggest strengths of Forschungszentrum Jülich is the combination of world-class facilities, interesting research, and a supportive working environment. He values the freedom to explore new ideas while knowing that help is available when he needs it, whether through colleagues with specialist expertise or the wide range of technical support and training opportunities available across the centre.
"Training opportunities are very valuable to have. You can simply look at the programme and drop in to courses."
He also enjoys being surrounded by cutting-edge research and the opportunity to see how software supports such a broad range of scientific disciplines.
"In research you can keep finding interesting things to do."
Looking Ahead
Sam believes there is still work to do in raising awareness of research software and helping researchers adopt good software practices.
He sees communities like JuRSE as playing an important role in promoting the value of research software across the research landscape.
"I think it is really nice at a higher level of spreading awareness and promoting the value of software in research."
For Sam, these efforts ultimately support better science.
"Most FAIR principles are important in science and they are important in research software."
Quick Fire
Favourite programming language: Python (although Rust is next on the list to learn)
One tool you can't live without: Git
Best coding advice: "Don't be scared of Git. Just start using it. It is worth learning even if it seems silly at the beginning. As soon as there is more than one person working on something, it becomes very important."
Fun fact: Sam has a nidan (2nd degree) belt in karate.