Dev & Engineering

Visual Search

MATLAB

Infrastructure Link to heading

I manage my local and cloud infrastructure with Terraform + Ansible + Docker. I’ve found this stack incredibly powerful so I’ve written a post about my patterns and what I love about it.

grafana dashboard

Basically, Terraform creates and destroys infrastructure, Ansible manages the OS-level stuff and then the services I run use docker compose. I use a bootstrap Ansible role instead of golden images.

Read More


Holoportation Link to heading

C++ [Kinect SDK, OpenCV] C# [Winforms, Unity 3D]

Holoportation is an area of research exploring the ability to livestream 3D environments over the internet. The technology has many applications for AR/VR experiences like 3D sports and music events or smaller-scale applications like a 3D Twitch.

The holograms are captured in the form of a point cloud, a cluster of coloured dots that, when presented correctly, can appear like the original object.

My undergraduate dissertation documented extending the LiveScan3D holoportation platform to allow multi-source streaming. The existing capabilities allowed a single scene to be captured in real-time and streamed elsewhere for viewing, multi-source allows multiple independent scenes to be received and composited at the same time (a many-to-one system).

Read More

Draught

Rust + Js

Game of Life

Rust + Js

Mixonomer Link to heading

Python [Flask] JavaScript [React]

Mixonomer is a web app for creating smart playlists for Spotify. These playlists watch other playlists to use them as sources of tracks. These tracks are filtered and sorted before updating a Spotify playlist.

Updates are run multiple times a day or on-demand. Additionally, Last.fm integration provides listening statistics for your playlists.

cloud structure

The project began as an exercise in recreating the functionality of Paul Lamere‘s Smarter Playlists app. This tool had become a really important part of my daily listening habits as a way of combining my smaller sub-genre playlists into larger mixes.

The app has a Python back-end written in Flask. The front-end was built using a Node + Webpack + React stack.

The system is now deployed with a fully serverless architecture.

Read More

Try It Out

Source Code


Selector Link to heading

.NET [ASP.NET, Redis, Docker] TypeScript [Vue]

A Spotify listening agent which watches what you listen to and presents related data and information in a live dashboard. Spotify presents some interesting track data that isn’t visible in the official clients such as its beats-per-minute, key signature and a musical descriptor.

dashboard

Read More

Try It Out

Source Code


Listening Engineering Link to heading

Python [scikit-learn, Jupyter]

Spotify and Last.fm are two powerful platforms for music data and consumption.

I wanted to explore what insights could be found in my 3 years of Last.fm scrobbles when augmented with Spotify data. Ideally, I also wanted to be able to apply the intelligence to the Mixonomer playlist pipeline.

Spotify provides audio features for the tracks on its platform. These features describe a number of qualities for the tracks including how much energy it has and how vocal it is. I investigated whether the set of audio features for my larger genre playlists could be used to classify tracks by genre.

Read More


Signal Processing Link to heading

Throughout my studies I found myself particularly interested in the signal processing and AI modules, these have included:

  • Computer Vision and Pattern Recognition
    • Visual Search Report
  • Robotics
    • ROS Labs
  • Speech & Audio Processing & Recognition
    • Linear Predictive Speech Synthesiser
    • Hidden Markov Model Training
  • Image Processing & Deep Learning
    • CNN Training Coursework
  • AI & AI Programming
    • Shallow MLP Coursework

Posts

Coursework Code


I’ve been coding for 8 years and I now work as a software engineer in fintech. Day-to-day this is in C# and TypeScript but I also like working with Python and Rust. I keep all of my projects on GitHub.

Alongside development I also enjoy working on infrastructure, I have 5 years experience using Linux and managing networks. I have experience working with cloud technologies – from virtual machines, web server PaaS and serverless functions to NoSQL, Big Data SQL and pub/sub messaging. Much of this experience was gained during my Mixonomer project and during my Disney internship. As part of my dissertation, I used a global cluster of virtual machines as an environment to measure and experiment with holographic video QoS over long distances.

At university, I was particularly interested in the software side of the field including modules in programming, signal processing and AI. I also took a set of modules in semiconductors and nanoscience.

Posts


Awards Link to heading

Throughout my time at university, I earned multiple awards for academic achievement

  • Dean’s List for Academic Achievement (2018)
  • Lumentum Award (2020)
    • Awarded for achieving the highest mark in my third year Semiconductors & Optoelectronics module
  • Atkins Best Oral Presentation – 2nd Prize (2021)
    • Awarded for giving second best oral presentation for multi-disciplinary design project. Project involved designing a fully renewable ship and depot to repair sub-sea fibre optic cables.