Bridging the Chasm Between Research and Software Development – A Story From a Fertility App
Ava is an innovative young Swiss company whose vision is to provide women with datadriven and scientifically proven insights about their bodies throughout all stages of their reproductive lives.
The hormonal changes that a woman experiences during her menstrual cycle have definite effects on baseline body temperature, heart rate, breathing rate, skin perfusion, and a number of other physiological characteristics. We measure these physiological signals with a wearable device and use machine learning algorithms to pinpoint a woman’s fertile window in real-time so that she knows the best time to try to conceive, or when she can have sex without worrying about unwanted pregnancy.
Besides an abundance of medical know-how in a highly regulated space, it also requires a lot of expertise in the fields of signal processing, statistics, and machine learning to develop algorithms to tackle such business problems and train them to handle noisy real-life physiological data. We are sailing in unchartered waters with no off-the shelf solutions and the emphasis therefore tends to be directed towards research. This can become a challenge when the algorithms need to be put into production since research code is typically developed for individual use with the purpose of experimentation without any focus on being of high quality, robust, maintainable, and scalable.
In this talk I will tell the story of how we bridged this gap by, on the one hand, using a microservice architecture to separate the scientific code from that of the infrastructure, the hardware, and the mobile application and, on the other hand, by using the mlflow platform to modularise all our scientific code to optimise for reproducibility, streamline the machine learning lifecycle, and speed up algorithm deployment.