Projects
Below is a list of projects that I have completed over the past few years. These are divided into Personal and Coursework, where Personal includes any project that wasn’t graded by the University, and Coursework being the opposite.
I have only made courseworks publicly available that are either “unique” (i.e. courseworks which aren’t “write some code to achieve X in Y language”), or I am aware that of the University making changes to the original question such that my code can’t be used.
Personal
Discord Bot (Saltmarsh)
- Dates: Feburary 2023 - April 2023, September 2023 - Present
- Technologies: Java (Maven, JDA, Lombok, Jool, Spotify API), MongoDB, Docker, docker-compose, GitHub Actions
- Description: A utility Discord Bot which features additonal support for Discord events, a music bot and polling.
- Links: GitHub
Otzdarva “Quick Info for DBD” Spreadsheet to Website
- Dates: July 2023 - August 2023
- Technologies: Python (BeautifulSoup, Google Sheets API), HTML (Handlebars), CSS, JS, Docker, GitHub Actions
- Description: A transformation of a spreadsheet written by a reputable, well-known content creator for the video game Dead by Daylight detailing the strength of particular “perks” within the game.
- Links: Website, GitHub (Scraper), GitHub (Website)
Shopping List Generator (Todoist)
- Dates: January 2022 - Feburary 2022
- Technologies: Python (gym, PyTorch, MatPlotLib, SciPy)
- Description: A simple tool to generate a shopping list based off specified recipes in the todo app Todoist.
- Links: GitHub
Minecraft RCON Protocol as a REST API
- Dates: December 2021 - January 2022
- Technologies: Go (gin, logrus), Docker, Jenkins
- Description: Allows the user to execute commands on their Minecraft server via their RCON protocol using a REST API.
- Links: GitHub
Capture the Wool (Minecraft Plugin)
- Dates: May 2021 - June 2021
- Technologies: Java (Maven, Paper, Lombok, Jool, Reflections, AssertJ)
- Description: A plugin implementation of a Minecraft gamemode Capture the Wool.
- Links: GitHub
EcoBasket (Launchpad 5.0)
- Dates: Feburary 2021
- Technologies: AWS (Elastic Beanstalk, DynamoDB, CodeBuild, CodeDeploy), Java (Spring, Lombok)
- Description: A project made in a 24 hour hackathon, which is the backend for an app that tracks the carbon emissions of your shopping list. Includes leaderboards amongst friends
- Links: GitHub
Survival Games (Minecraft Plugin)
- Dates: Feburary 2021
- Technologies: Java (Maven, Paper, Lombok, Guava)
- Description: Simple implementation of the popular Survival Games gamemode, including map voting
- Links: GitHub
PAL Unit Testing
- Dates: November 2020 - December 2020
- Technologies: Java
- Description: A compact (single class), lightweight implementation of a unit testing framework (based off JUnit), designed to be easily copy-pasted into exercises set for students on the PAL programme.
- Links: GitHub
Minecraft Bedrock to Java Chunk Converter (Build the Earth UK)
- Dates: August 2020 - November 2020
- Technologies: Java (Maven, Lombok, Guava)
- Description: A plugin that converts information from the Bedrock to Java editions of Minecraft built for the Build the Earth project.
- Links: GitHub
AWS DeepRacer Experiments
- Dates: June 2020 - July 2020
- Technologies: Python (Tkinter)
- Description: Some experiments and a visual renderer for the tracks in AWS DeepRacer in an attempt to calculate optimal racing lines on a track.
- Links: GitHub
Animal Crossing: New Horizons REST API / Scraper
- Dates: April 2020 - May 2020
- Technologies: Python (BeautifulSoup), Java (Spring)
- Description: A scraper for certain elements of the Animal Crossing: New Horizons wiki page, with a REST API to present this information.
- Links: GitHub (API), GitHub (Scraper)
Coursework
Benchmarking Lunar Lander
- Dates: October 2022 - January 2023
- Module: Reinforcement Learning
- Technologies: Python (gym, PyTorch, MatPlotLib, SciPy, NumPy, PyYAML), Docker
- Description: A group project which aims to benchmark and comparison multiple different RL algorithms (SARSA, DQN, TD3, DDPG)
- Grade Achieved: 69%
- Links: GitHub
Simply Typed Lambda Calculus
- Dates: Feburary 2021 - March 2021
- Module: Functional Programming
- Technologies: Haskell
- Description: A simple Haskell implementation of the simply-typed lambda calculus.
- Grade Achieved: 100%
StudentPals
- Dates: January 2021 - June 2021
- Module: Group Project
- Technologies: AWS (Lambda, DynamoDB, ElasticSearch, Elastic Beanstalk), Java (Maven, Gradle, Android, Spring, Lombok, Akka), Python
- Description: An Android app allowing other students to organise events online.
- Grade Achieved: 72%
- Links: GitHub
Sudoku Solver
- Dates: November 2021
- Module: Artificial Intelligence
- Technologies: Python ()
- Description: A program used to solve varying difficulties of sudoku puzzles. Implementation involved treating sudoku as an exact cover problem, and then using Algorithm X and Dancing Links to solve it
- Grade Achieved: 100%
Network Testing
- Dates: April 2020
- Technologies: Python (Google Maps API)
- Module: Computer Systems Architecture 2
- Description: Supporting code for a writeup on various networking experiments.
- Grade Achieved: 75%
- Links: GitHub
Money Managing App
- Dates: Feburary 2020 - April 2020
- Technologies: Java (Maven, Swing, Lombok, GSON, JFreeChart, HTTPClient, Guava, Jetbrains Annotations, Monzo API, JUnit, AssertJ, Mockito), Jira, Trello
- Module: Computing as a Science and Engineering Discipline
- Description: A command line interface providing money managing utility. Also includes integration with Monzo’s API
- Grade Achieved: 85%
- Links: GitHub
Dungeons of Doom
- Dates: November 2019 - January 2020
- Technologies: Java
- Module: Principles of Programming I
- Grade Achieved: 98%
- Description: A simple command line dungeon game, including bots a variable difficulty level
- Links: GitHub
Saturated Reverse Polish Notation (SRPN) Calculator
- Dates: October 2019 - November 2019
- Technologies: Python
- Module: Principles of Programming I
- Grade Achieved: 100%
- Description: A re-creation of a provided reverse polish notation calculator (with bugs!)
- Links: GitHub