Portfolio

Automation

Automated Alarm Clock . GitHub

  • Using: Python 3, Unit Test, Travis C.I,
  • Motivation: to produce an automated alarm clock that adjusts itself based on the day of the week and university timetable

Web Development

TAXONOMIC SYSTEM: High Fidelity Prototype of a system that allows users to add tags and metadata to items. GitHub

  • Technologies used: Semantic UI, Less, JavaScript, CSS, HTML.
  • Motivation: a group project that involved transforming the low fidelity prototype into high fidelity. The goal was to demonstrate a system that was intuitive and allowed users to fulfil required functionality with minimal errors. This was analysed via statistical analysis from data gathered during A/B testing.
  • Approach: because this was simply a prototype concerning user interface and user experience, everything ran within the browser, i.e. no server side component. Close attention was paid to the time users took to complete a set task and to the number of errors made. The feedback was evaluated and the system modified.

SABBATICAL LEAVE SYSTEM: A web based sabbatical leave application system GitHub

  • Technologies used: React, Java Spark, Heroku
  • Motivation: A university group project to create a web based sabbatical leave application system, replacing the then paper process.
  • Approach: A dynamic web application, enabling staff to electronically create, review and archive applications. This was a team effort that had me making contributions using Java Spark, React and PDFBox

IMAGE GENERATOR: an image generator that takes text input and places this text over a default background to generate a .png file

  • Technologies used: Ruby, AWS S3
  • Motivation: this tool was built for a charity who saw value in the tool because it reduced the repetitive and unnecessary action of opening a photo editor or similar applications for a such a trivial task.

Machine Learning

CONFORMAL PREDICTOR: code visible on GitHub

  • Technologies used: Jupyter, Numpy, Scikit Learn
  • Motivation: University Machine Learning assignments
  • Approach: K-Nearest Neighbours implemented with conformal prediction, cross conformal prediction and inductive conformal prediction.

FEEDBACK SYSTEM: A staff optimiser based on customer feedback GitHub

  • Technologies used: TensorFlow, Python, Flask Microservices
  • Motivation: Winchester Council held a hackathon challenging attendees to conceive solutions that improve local business.
  • Approach: constructed a browser run GUI to be displayed at till points, offering visitors the chance to give feedback. Feedback scores are then mapped against time intervals showing highest and lowest productivity for that staff member.

Internet of Things

Automatic Number Plate Recognition:

  • Technologies used: Python, OpenCV, OpenALPR
  • Motivation: to reproduce what I'd already achieved whilst interning for Cubic Corporation, but with modifications to improve detection accuracy
  • Approach: connected a camera to a raspberry pi and ran a python script that captured images, processed the number plate using OpenCV library, then appended the new plate number to a log.

FACELOCK: Face recognition, door unlock project for "R U Hacking 2018" at Reading University. GitHub

  • Technologies used: Python, OpenCV, Heroku
  • Motivation: a team effort to produce an award winning IoT device. We were awarded 2nd place amongst 20 entrants.
  • Approach: created several prototypes that approached the project in a different way but the main concept consisted of three components; a server running a raspberry pi that captured images and attempted to match them with what was stored on the server. If a successful match was made the door would be unlocked (this was simulated with visual feedback red/green, access denied/granted)

Other

C Shell: a basic shell written in C. GitHub

  • Technologies used: C
  • Motivation: to create a simple shell for a university assignment
  • Approach: written in 2017 as a newcomer to C, I used basic libraries like stdio to take user input and print out a response using system calls.