jwhogg
Portfolio
7 Dec 2025
why-rs: A Causal Inference Library in Rust
Githubπ An under-development project, where I’m trying to build out a Causal Inference library in Rust. I found there wasn’t much in the way of CI libraries in Rust, and I was underwhelemed with the level of support for the ones I’ve used in Python, so I decided to try and build my own, which I hope to make use of throughout my PhD and extend to suit my purposes.
1 Dec 2024
Github- Back end π Github- Front end π Radial Chess UI Demo Playing against myself Inspired by the heorics of lichess.org’s single developer, I decided to try to create a similar web-based online chess app, with matchmaking. The main goal of this project is to use my knowledge of system design to make a robust and scalable app that could theoretically handle a large number of users. This involves knowlege of infastructure tools, and overcoming dificulties such as scaling a Web-Socket app (hint: you will need sticky sessions for your load-balancer!
4 Jun 2024
Github π On ongoing project of mine, taking inspriation from Monzo’s budgeting burndown feature. I’m building this web app with Ruby-on-Rails, and using the GoCardless API to handle linking user’s bank accounts to the app securely. The inspiration for the project: monzo's 'targets' tab. So far, I am building the MVP, and have implemented functionality to link a bank account with the app, and to store the user’s key to access their bank account data using server-side sessions, which are much more secure than cookies sesion storage.
4 Jun 2024
Github π A brief jupyter notebook I made showing how to fine tune a model using the π€ Transformers libary. The example I wrote uses the popular CNN/DailyMail dataset.
3 Jun 2024
Github π π€ Pipeline to generate summaries of youtube videos, using Whisper-Small for transcription, and BART-LARGE-XSUM for summarisation. BART has been finetuned on the popular CNN/Daily Mail Dataset, as it lends itself to summarisation tasks. Initially, we attempted to fine-tune GPT-2 for the summarisation task, but found it had poor performance: being a generative transfotmer, it generates words one-by-one, (extractive summarisation) whereas BART can generate at the sentence level (using abstractive summarisation).
16 May 2023
Causal Implicit GAN: Data Augmentation for Causal Discovery
Github π My University dissertation research project, where I designed and trained a GAN model for data augmentation (generating new training samples for downstream models). I was very proud to receive a score of 83 on this disseration (high 1st). A high-level overview of the CIGAN project The data the GAN generates is intended for use on Causal Discovery models, an area where quality ground-truth datasets are hard to come by- making data augmentation a valuable technique.