PhD student in the FP lab at the The University of Nottingham, under the supervision of Graham Hutton.
I'm really interested in programming languages (mostly functional ones) and how they can be made easier to use (e.g. interactive programming, clever type systems), plus things like program synthesis, holes, and anything else to do with incomplete programs. For my 4th year dissertation, I came up with some novel techniques for synthesising recursive functions (have a look at my paper - it should be readable without any background in the area!) and implemented them in my toy programming language, Fugue.
Another huge interest of mine, and in fact where my research is heading at the moment, is compiler calculation. This is where we can write a specification for some programming language as a high-level semantics (e.g. a tree-walking evaluator) and derive, mechanically, a compiler and a virtual machine for that language. Very cool stuff!
Most of my old projects are completely unfinished, but feel free to have a look around my GitHub page nevertheless. There's some cool stuff there! Also, I've written up all of the hackathon projects I've done over the years. In practice, hackathons are pretty much the only time I actually get round to finishing projects... Saying that, here are some projects which I have actually finished, or at least gotten sick of and called them done.
Also, I've made some websites over the years which may be useful and/or fun and/or interesting to some people! Please do let me know if any of these links are dead; they shouldn't be.
I've also made some websites for other people/societies. Ironically, I don't actually like web development. I just happen to end up doing quite a lot of it...
I've also appeared on Computerphile! My video is about L-systems, and you can watch it here!
If you want to contact me, the best way is probably through Discord, where I'm zacmg
. Or, you can email me at me <at> this domain . co . uk
.