Prototype to production: key considerations and a case study for research software engineers

Buckley G1, Milton M1, Cheon H1, Thomas E1, Kengsley J1, Iskander J1, Hodgkin P1

1The Walter and Eliza Hall Institute, Melbourne, Australia

Biography:

Genevieve Buckley is a research software engineer in the Snow Centre for Immune Health, a joint centre between the Walter and Eliza Hall Institute of Medical Research and the Royal Melbourne Hospital. She has over ten years of experience working in data analysis for academic research for biology and medical research. As a software developer, she has previously been a core developer on open-source software projects including the napari image viewer, and dask-image. She co-organised the scientific specialist track at the PyCon Australia conference from 2021 to 2025.

Abstract:

"Move fast and break things" is a motto that can work for rapid prototyping of new ideas and methods. But what happens when a research project becomes successful enough to outgrow its early, messy beginnings? There comes a point where we want to transform this into a reliable, maintainable, and easy to use piece of research software.

This presentation presents the key considerations that research software engineers must consider when embarking on a project to transform early prototypes into a reusable and maintainable software product. Alongside this discussion of best practices, we present a case study of an academic medical research project moving through the stages from early scripts to production deployment. The case study is a project named Cyton, software designed to fit mathematical models of immune cell population dynamics to experimental data. There are three maintainers that support the second version of this software, which is now a web application built with React, vite and typescript, sitting atop a Python backend using pydantic to control data structures, and cython for code acceleration.

The many considerations necessary for modern software development include future maintainability and tech stack choices, input standardization, the need for extendable, modular architecture, reliability and testing infrastructure, early requirements gathering, and iterative feedback loops. We will discuss all of these and more and show how we resolved each of these questions in our case study, then extend the conversation to broader tips applicable to a wider audience.

 

Categories

Website Sponsor

Website Sponsor