Presenter: Arnaud Mercier from PhD in Mathematical Geophysics in D-EAPS at ETH Zurich

Scientific software often faces a difficult balance between rapid research development and long-term maintainability. As new methods are introduced, ensuring reproducibility and reliability becomes increasingly challenging.

In a collaboration between the Mathematical Geophysics Group at ETH Zurich and Mondaic AG, we developed an open-source Python framework for full-waveform inversion that combines research flexibility with modern software engineering practices. Beyond the software architecture itself, a key focus of the project has been the development of testing strategies adapted to scientific applications.

While unit tests are widely adopted, they often fail to capture the complexity of real scientific workflows. We therefore complement them with integration tests that validate complete inversion pipelines on representative benchmark problems. These tests help ensure that new features, algorithmic changes, and performance improvements do not inadvertently alter scientific results.

This contribution discusses the challenges of maintaining a research codebase used for both methodological development and production-scale computations, highlighting lessons learned in modularity, testing, reproducibility, and collaboration between academia and industry. I would like to keep the discussion accessible and focused on general software engineering principles, development practices, and the lessons I learned through collaboration with a start-up.

Audience:
Research software engineers, scientific programmers, and researchers developing computational tools.

What participants will learn:<br/ Practical approaches to improving the reliability and sustainability of scientific software, with a particular focus on testing strategies that go beyond traditional unit tests.