THOMAS SAUPE

Position:Developer and Community Manager for the HEAT Library
Institute:Large Scale Data Science, ATML Data Management and Analytics, Forschungszentrum Jülich
Academic Background:Bachelor's and Master's in Physics; PhD in Applied Mathematics
Thomas Saupe works extensively in research software, but doesn't necessarily identify as a Research Software Engineer.
"I don't necessarily identify as an RSE – it is a lot of what I do – but when I think 'who am I', it is not an RSE. I identify as ‘idiot with a laptop’, which is broader than RSE.”
His role also includes writing scientific papers and working on the development community around the HEAT library.
The Journey
Thomas got into coding during his studies in physics. During his Master's thesis, he worked with a large three-dimensional hydrodynamics simulation code.
"It seemed really interesting what the code was doing and how the equations where turned into something a supercomputer can run."
He was interested in developing similar codes himself. At university, he started a small project with other students to build an educational version of the code from scratch.
"There I learned stuff about the method and so on. This was the first experience with real coding."
He continued developing his programming skills during his PhD, where he began writing more substantial research code.
Today, Thomas works mainly with Python. He particularly likes it because it is quick to work with and can be used as a "glue language" to connect code written in other languages.
His programming education has been a mix of self-learning and formal courses. He started learning on his own, took programming courses during his studies, and continued learning through books, tutorials, and projects.
"The best way to learn any language is practice."
For Thomas, working on a real project is an important part of learning.
"Most of the learning happens when you actually have an interesting project and actually do something with it."
He has also come to appreciate formal coding guidelines.
“Programming books often point out many easy-to-remember rules that make sense in most of live, including coding.”
He finds that formalizing concepts into rules can help with internalizing and explaining them.
More Than Writing Code
For Thomas, research software involves more than writing code. Code review is one part of the development process that he particularly prioritizes.
"Code review is something I prioritize and I think it should be prioritized. It is a blocking step between someone else's work and finishing that work."
As a repository maintainer, he sees reviewing code promptly as part of his responsibility.
"As a maintainer of a repository it is your responsibility to quickly review the code. Equally as important: As a coder, it is your responsibility to make your code easy to review."
When it comes to developing research software, his advice is simple:
"KISS – Keep It Simple, Stupid."
He first encountered the principle throughClean Code, a book recommended to him by someone he met while on holiday in Italy (Thanks Mark).
For Thomas, RSE is especially dependent on keeping the code clean as a foundation for sustainability.
“In RSE, there is very high turnover of developers, so you need to make sure that future developers can read your code when you have already left and that students can quickly make sense of it.”
Current Work
Thomas's main project is theHEATlibrary, which enables researchers to work with large datasets on high-performance computing systems.
He is also working to build a user community around HEAT. The current users are primarily from Helmholtz and DLR, and he would like to see the software used more broadly.
Alongside HEAT, he continues to work on code from his PhD, pySDC.
One aspect of programming Thomas particularly enjoys is what happens when a small amount of code produces a complex numerical result.
"When I write a few simple lines of code and then something non-simple like a numerical simulation happens. I still think that’s a minor miracle."
Short-term contracts are one of the main challenges he identifies in research.
"It always means that a large part of my energy is consumed by what comes next – looking and applying for jobs."
Thomas points to the instability of short-term contracts as a challenge in research. It also makes him think about what happens to software when the person who developed it moves on.
"It has to be left in a state where the next person can pick it up."
Thomas values the working environment at Forschungszentrum Jülich, including the facilities, colleagues, and support available when he needs it. He also appreciates the freedom to get involved in new areas and the range of research taking place across the centre.
“Our watercooler takes ages to dispense some water, which lands you in many interesting conversations with cool people.”
Thomas sees value in a stronger RSE community and thinks it can help researchers with developing useful and transferable skills.
“Software engineering is valued by employers both inside and outside academia. This is a useful skill that transfers to the next job and is good to have on the CV.”
He also sees training as useful. One example he gives is Git, which he thinks is often taken for granted.
"A mandatory Git course would be good. No other craft is privileged with a literal time-machine. It’s indispensable, but very intimidating for newcomers.”
Quick Fire
Favourite programming language:Python
One tool he can't live without:Vim
Best coding advice:KISS – Keep It Simple, Stupid.
Fun fact:Thomas likes to network around the ping-pong table at JSC.