This section showcases a selection of my projects over the past few years. From developing engaging applications to conducting in-depth research, these projects demonstrate my technical, creative and collaborative skills. Currently, some of these projects are closed-source and are not on my Github, however on request I am happy to provide the code.
During my final year at University, I researched the effectiveness of applying Evolutionary Algorithms to Sudoku puzzles. This involved the design and development of multiple unique Genetic Algorithms, alongside the production of a ten thousand word report and twenty minute video to convey the findings of my unique research.
A RestAPI developed in Python using the module Flask to act as a stripped down version of Excel. The API supports adding, reading, updating and deleting cells, alongside cell referencing. Storage is configarable using the command line to use either SQLite or Firebase.
Implementation of the Ant Colony Optimisation (ACO) algorithm in Python which attempts to solve the Travelling Salesman problem. Contains fully customisable parameters including the quantity of ants, pheromone strength, alongside the ability to use different variations of standard ACO, such as Max-min ant System (MMAS).
An innovative, sustainably-focused game developed using the Django framework designed to engage users in environmentally conscious behaviours, promoting sustainable practises through interactive challenges, earning users coins which can be used to upgrade their characters. Characters can battle each other in a top trump style online game. This was developed as part of a Group Software engineering project. I was responsible for front and back-end development of the application, focusing mainly on user authentication, permissions and challenges aspect of the game.
Part of a Univeristy project which involved the creation of a game engine in Python using the Pygame and pyOpenGL libraries to render 3D objects. The objective was to model a scene of London being attacked by dinosaurs. My engine provided support for different types of shaders, animation of models alongside movement of the camera, a custom skybox and environment mapping.
This project involved the creation of a series of C programs, each designed to solve 3 unique problems and tasks. These include: A tool to turn English words into Pig-latin, a mimic of a riffle shuffle on a pack of cards, and finally a simulation of the game Beggar-your-neighbour. This project allowed me to understand the Low-Level nature of C and understand how to implement different data structures from scratch. It also allowed me to understand the importance of memory management and how to avoid memory leaks.
Using machine learning I attempted to predict football players transfer fees based on characteristics about themselves, such as: height, age, appearances, goals etc. This project was developed using Python and I used the scikit-learn library, alongside a dataset from Kaggle. I used both the Linear Regression and Random Forest Regression models in this project.
I developed a multithreaded card game using Java. This significantly deepened my understanding of multithreading. I learned how crucial it is to properly manage resource locking to prevent race conditions and ensure smooth execution in concurrent environments.
For a full-stack University project, I developed a complete website hosted on a virtual private server that allowed users to sign up and play a game of Tetris. The game was coded in Javascript, whilst the front-end was covered with HTML and CSS and the backend with PHP. The website contained a leaderboard displaying top-scoring players, with a MySQL database handling user data and scores. This project introduced me to the LAMP stack, and exposed me to the Linux command-line.
A University project where I had to create a number of solutions to provided problems using Haskell and Prolog. This was my first encounter with functional programming languages, and gave me an in depth insight and recap of recursion and the importance of it in languages such as these.
This project involved developing a maze-solver that utilised two established algorithms. I decided to use a Depth-First-Search alongside the A* algorithm. In order to test the algorithms, I was provided with multiple test sets containing mazes of various sizes. This enforced me to ensure the application was developed as efficiently as possible to allow for it to run on the larger maze sizes.
This was my first University project, which involved developing a COVID-19 dashboard, containing data fetched from the UK government API. The interface was developed using HTML, whilst information was displayed using the Python module flask. The dashboard displayed various statistics about the virus, and could be configured for any user specified area. Alongside this, news articles were also shown, and all updates could be scheduled. Unfortunately due to updates with the API being used, the project no longer works.