I undertook my PhD in the School of Mathematics and Statistics here in St Andrews, starting in 2014 and graduating in June 2019. My thesis was entitled Semigroup Congruences: Computational Techniques and Theoretical Applications. After my PhD I moved to the School of Computer Science, where I spent one year as a research software engineer working on the OpenDreamKit project, before taking up my current post in September 2019.
I have been based in the University of St Andrews since 2009, completing the degrees of BSc Computer Science/Mathematics in 2013 and MSc Mathematics with Distinction in 2014.
As part of my MSc degree, I also wrote two dissertations on computational semigroup theory, each of which contained some original research:
- Computing with Semigroup Congruences (2014-09-05, MT5099 Dissertation for MSc Programme/s)
- Computing with Congruences on Finite 0-Simple Semigroups (2014-05-19, MT5991 Professional Skills for Mathematical Scientists)
My main research interest is in computational algebra; across the period of my MSc and PhD I contributed to the GAP computational algebra system, and in particular to the Semigroups and Digraphs packages for GAP. One particular area of my focus has been on computing semigroup congruences; I have written and implemented a number of algorithms for this in the Semigroups package. Since submitting my thesis, I have also become a main author of the curlInterface and MathInTheMiddle packages for GAP, as well as creating pypersist and Memoisation, a Python library and a GAP package for persistent memoisation in the two systems. I also created PackageManager, a package management system for GAP.