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

Saltmarsh Example Poll

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)

Otzdarva Spreadsheet to Website Preview

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

Example Episode

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