I’m a Mathematics and Foundations of Computer Science MSc student at the University of Oxford. I’m excited about research in algebra, geometry and theoretical computer science, particularly in higher category theory, homotopy type theory, algebraic geometry, algebraic and geometric topology, toposes, rewriting systems, complexity theory and formal verification.
I’ve worked on several research projects in both industry and academia. I was an active developer of the GCC during my time working at MIPS LLC, and aided in research on graph transformations with Graham Campbell and Detlef Plump, as well as helping on formal verification of concurrent systems with Ana Cavalcanti and Simon Foster. I’m always happy to talk, so drop an email if you want to chat!
An introductory course to algebraic topology, covering simplicial and cell complexes, the fundamental group and the connections to group presentations therein.
A presentation detailing my work on Turing Machine Networks.
A short lecture series on code scheduling, including dependences and software pipelining.
Developing demos and drivers for ThinCI's Graph Streaming Processor (GSP), an external chip for accelerated machine learning and computer vision processing.
Worked alongside Graham Campbell and Detlef Plump with an EPSRC-funded summer grant to investigate an optimization for graph transformation-based programming languages, called 'root nodes'. Project was in the end successful, resulting in a report listed above. At the same time, worked with Ana Cavalcanti and Simon Foster on verification of reactive Circus processes; this did not result in a report due to time constraints.
Contributed to the MIPS Toolchain and GCC, in particular developing exception handling runtimes and interrupt code generation. Helped in development of new nanoMIPS ABI. Designed architecture for new OpenMP implementation for MIPS using MT ASE. Listed as a contributor to GCC nanoMIPS patch.
Worked alongside City of York Council to develop and teach a six-week introductory programming course to secondary school students. Course covered variables and types, control flow, data structures, functions, iteration vs recursion and example algorithms.
Took part in the York Students In Schools volunteering programme to assist in several secondary school math classrooms for one term. Helped students with assignments and answered questions from students of all skill levels.