Contact

Open Source

Projects

Potato Library Screenshot

Potato Library

A bespoke book management system for Potato.

Developed as part of a 4-person team for the Software Project Engineering unit at the University of Bristol.

The Spring Boot backend interfaces with a MySQL database to serve a REST API. This Java application is then deployed to the cloud. The frontend consists of static HTML generated using Bootstrap and Vue.js, served by the internal Spring web-server - accessing and mutating the data through the REST API.

This project was developed using 6 Agile sprints to complete 76 user stories. We utilised test driven development by using JUnit unit tests with Gitlab CI/CD to automatically run tests and deploy the application to Oracle Cloud.

Game of Life Screenshot

Concurrent Game of Life

A concurrent game of life implementation designed to run on a limited piece of hardware.

Developed as part of a 2-person team for the Concurrent Computing unit at the University of Bristol.

This game of life implementation was written in XC and designed to run on the XMOS xCORE-200 eXplorer. The program runs concurrently across tiles, utilising channels for cross-thread communication. Hardware memory limitations posed interesting challenges, with solutions such as packing the individual "cells" into individual bits of 32/16-bit integers to be as memory-efficient as possible. Each turn, the board is split up into rows of these packed cells which are then distributed across workers for processing, then returned to the distributor and consolidated back into a single board each turn.

This coursework was later updated to be based in Go, and run on desktop PCs. I have also completed this coursework assignment as part of my role TAing this new unit.