Projects
An app project that I made during 2020. It's an automatic checkout bot that could be used to order merchandise from some select online stores at lightning pace. It's a simple idea built using some powerful and modern tools that were bleeding edge at the time: PromiseKit, SwiftUI and Combine.
The app was received very well (hovering at around a 4 star rating on the App Store). If you want to get in touch, send me an email from the app's website support page.
I'm a hobbyist web security researcher, simply because I find the process of finding bugs fascinating. The modern web is scattered with complexity and lots of different systems from different domains all interacting in different ways, making the scope of potential vulnerabilities very large. I have primarily been focusing my efforts on the new Apple Security Bounty program. Since this program's inception, I have submitted almost a dozen vulnerability reports, and I have been credited by Apple on their web security page.
My final year computer science project dissertation was "Quickly Answering Multiple-Choice Questions using Deep Learning", which involved creating an automatic answering bot the (then) popular game HQ Trivia. The area of study involved performing open-domain question answering on games of HQ Trivia, using deep learning and Google AI Language's BERT to generate answer predictions in real time. This was a bleeding-edge deep learning model, amongst the first to use a transformer model at its core. This was my first exploration into machine learning and found it extremely interesting; I was able to achieve a result similar to the state of the art in open-domain, multiple-choice question answering. You can see the full paper here.
I attended Durham University from 2016-2019 and graduated with First Class Honours in BSc Computer Science.
This project was my entry for a WWDC18 scholarship. It provides an interactive introduction to RSA Encryption within a Swift Playground. I was fortunate enough to have been selected as a winner, and was given travel to the USA, accommodation for the week and a ticket to attend WWDC18. It was an incredible experience and I'd encourage any student that's into programming to give it a go. While my code is not the best by any means, I have still open sourced the project to let you see that you don't need the cleanest code to get selected.
Here's a video of the project in action.
My entry for a WWDC17 scholarship involved creating an interactive introduction to sorting algorithms within a Swift Playground, using fun emoji characters. While unsuccessful, this was an invaluable Swift learning experience. I've open sourced the project.
This is a simple game I created for my Extended Project Qualification (EPQ) while at school. I achieved the highest possible grade for this project, which was an A*. It makes use of SpriteKit as the game engine.
This was a social networking application I created in my free time using iOS and Firebase. It allowed for friends to chat anonymously with each other within an iOS client app. I discontinued this, but all the client code is open source. This 'real' project taught me the importance of having a well architected app!
It was a great learning experience, and was the first time that I had used any of the Firebase suite of products, which I continue to use today. When working on this project, the Firebase Realtime Database was still very new and very cool that it was so easy to implement realtime features.
An arcade style game for iOS where the goal is to save the earth against being hit by asteroids.
This was another SpriteKit-based game I made, garnering a few thousand downloads. I worked especially hard on the animations of all the elements, and the collision engine. Generated revenue through advertisements, with a StoreKit integration to remove adverts for ~£0.79. This is no longer available on the App Store.
One of my first applications involved creating an immitation of the popular Flappy Bird game. I'd encourage anyone starting out programming just to try and immitate a simple game. It gives you a crystal clear goal, you learn stuff you'd never even think of yourself and the result is really fun! (and iOS SpriteKit is a great place to start)