There and back again:

An RSE’s Tale

I have spent the last three weeks working to improve trust and reproducability of software that is used to inform goverment policy on the Covid-19 outbreak. The result is MetaWards Python, which is a Python port of the original MetaWards C code.

The move from C to Python, and then back again to C via Cython, has taught me a lot about what it means to be an RSE, and the vital role of good research software engineering and data science during this crisis. Throughout, I’ve wanted to blog to share my experience with other RSEs, but time had got in the way. What was a short post has now grown into an epic long read, now divided into three parts, which are linked to below.

Part 1: Fellowship of the Ring

Part one of the blog discusses the importance of trust in software, and how the vital role of RSEs is to improve trust.

Part 2: The Two Towers

Part two discusses how an RSE can climb the two towers of making a code fast, while also keeping it correct.

Part 3: Return of the King

Part three dicusses why research software engineering is different to standard software engineering. How can we build fast and robust software where the requirements are unknown and while maintaining adaptability and flexibility? And how do we send this knowledge into the future.