At mLab I mainly worked on an open source system orchestration platform built on Kubernetes that we called Lattice. Lattice allowed users to write fully declarative system definitions to orchestrate large systems at scale. Lattice handled communicating with cloud providers to create cloud resources and then create, destroy, scale, monitor, secure and otherwise administer Kubernetes clusters in order to achieve the desired specified system configuration.
Lattice is available on Github (though hasn't been maintained since mLab's acquisition by MongoDB).
I worked for CPD for Teachers as a teacher trainer, a content creator and lead web developer. In my capacity as a content creator, I wrote a large number of tutorials, blog posts and worksheets explaining a wide variety of complex tasks. These were used in courses and lesson plans in primary and secondary schools across the country.
As a trainer, I travelled around the country teaching primary and secondary school teachers to use complex technologies in their classrooms. The technologies included everything from Python to MIT's App Inventor to the Raspberry Pi.
As lead web developer, I led a team to redevelop the company's website from the ground up, including a comprehensive booking system, a mass emailer, a backup system and a content management system. This role also involved managing their large database—which included dozens of trainers, thousands of users, tens of thousands of bookings and every school in England and a significant percentage of the schools in the United States.
For my third year games project, I worked as part of a team to develop a game we call Trenchmill. Trenchmill is a game which takes place in the trenches of World War I and allows you to move by running on a manual treadmill and shoot using a Wiimote. The game also makes use of a heart rate monitor, fundamentally changing the game to keep the player engaged and ensuring that all players are physically challenged.
My most important contribution to Trenchmill was interfacing between the game engine and the treadmill. Getting an accurate, low latency reading from the treadmill we were using proved to be very challenging; I tried a wide variety of different approaches, from using a camera and some computer vision to track the speed of some tape stuck to the belt of the treadmill, to using a computer mouse to tack the speed of the treadmill’s belt. Ultimately, I intercepted the cables from the treadmill’s (completely undocumented) inbuilt speed sensor and used a combination of a Raspberry Pi, an oscilloscope and a logic analyser to determine the format of the signal.
At the end of the project, I open-sourced the treadmill speed reader and made it available on GitHub.
I studied Computer Science at the University of Bristol for four years after which I graduated with a first-class honours master's degree. I won a number of departmental and faculty awards in every year, including for the best third-year project and contributions to the life of the faculty. I also ran the Computer Science society with hundreds of members where I organised sponsorship from companies such as Microsoft and Bank of America and hosted events and hackathons.