Ph.D. in Mathematics Ph.D. in Computer Science
My research profile is deliberately balanced between mathematics and computer science, with each
informing and shaping the other. In computer science, I work in programming language semantics and
formal methods, with a particular focus on the use of mathematical structure as a foundation for the
design of reliable and principled computational systems. My research addresses the semantic analysis
of expressive programming languages and the development of correctness-by-construction methods for
program transformation.
Alongside this, I maintain an active research programme in mathematics, centred on the theory and applications of low- and higher-dimensional generalised categorical structures, often developed through the lens of two- and three-dimensional universal algebra. This mathematical work is often intertwined with my research in programming languages: it provides the structural tools required for semantic modelling, while questions arising from programming language semantics, in turn, inform and motivate new research directions in mathematics.
I have held academic and research appointments, as well as visiting positions, across Europe, the Americas, and Africa. These include postdoctoral and research fellowships at institutions such as the University of Birmingham (UK), York University (Canada), the Mathematisches Forschungsinstitut Oberwolfach (Germany), Utrecht University (The Netherlands), the Fields Institute for Research in Mathematical Sciences (Canada), and the University of Coimbra (Portugal).
In addition, I have undertaken visiting research stays at a range of international institutions, including UCLouvain (Belgium), Stellenbosch University and the University of Cape Town (South Africa), and the Instituto de Matemática Pura e Aplicada (IMPA, Brazil).
📄 For a comprehensive overview of my academic experience, please refer to my full Curriculum Vitae.