Scientific computing
I develop research software that connects physical assumptions to observable predictions. The common pattern is performance-critical modelling in C, with Python used for analysis, visualisation and workflow tooling.
binary_c (C)
binary_c is a population synthesis and binary-evolution codebase that I work on and extend. I focus on maintainable performance: careful data structures, clear interfaces, and profiling-led optimisation where it matters.
- Implementing and validating physical modules against known benchmarks and observational constraints
- Representing orbital phase cleanly so time-dependent physics can be connected to observables
- Making provenance explicit (inputs, configuration, outputs) to support reproducible runs
binary_c-python (Python)
I develop Python tooling around the modelling to make it easier to run ensembles, interrogate outputs and build analysis workflows. This includes convenience wrappers, data handling, plotting and sanity checks.
- Interfaces that keep the model configuration explicit and versionable
- Analysis scripts that turn model grids into publication-ready figures
- Lightweight automation (for example, generating derived data products for websites and reports)
Window to the Stars
Window to the Stars is a graphical interface for stellar evolution codes. It has been used in teaching and outreach settings, and it is one of the tools used in Stars for Schools.