Google Summer of Code 2020 (Current)

I am currently participating in Google Summer of Code, under the haskell.org organisation. My project is to introduce tracing into ghcide, a Haskell language server, which gives editors IDE-like capabilities for Haskell projects.

My project will allow developers of this tool to analyse its behaviour at runtime, enabling them to improve its performance. If I complete the project with time left over, I also hope to use the capabilities I have added to also improve the performance of the tool myself.


The Kima Programming language

Kima is a programming language I am currently working on. Its main goal is to explore the practicality and design space of algebraic effects, in a statically typed, mostly-imperative language. In its current form it supports product types (structs) and higher-order functions, while I am currently working on algebraic effects.

Written in Haskell and tested using Hspec and Gitlab CI.



A simple verilog emulator and visualiser for first-year EEE students. This project was done in the context of my third-year High Level Programming module.

Hardware design tooling is notoriously hard to use, especially for beginners. We tried to make things easier for beginners by giving a way to quickly run and visualize verilog designs without having to deal with tools like Quartus or Vivado.


MIPS Simulator

A simulator and testbench written as a university project. Simulates almost all mips-1 instructions, and runs real MIPS-1 binaries. Written in C++.