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 schematic placeholder
Replace with a schematic of binary-star evolution channels, a workflow diagram, or a figure from a paper (with permission).

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.