Work
Wealth management app
I helped build the full tech stack of wealth management startup Prosper from zero to £0.5bn of customer assets on the platform. The iOS and Android apps were built with React Native and the backend used AWS Lambda and PostgreSQL with GraphQL in between.
eCommerce marketplace
I helped develop an eCommerce marketplace for upmarket menswear, furniture and home accessories. This included building a custom payment integration with Klarna, alongside PayPal and Stripe.
Covid Sample Tracker
Throughout the Covid pandemic, the Sanger Institute led the way globally in tracking the genetic evolution of the virus. This was done by sequencing the genome of a random sample of the covid tests being carried out nationally. Tracking all these samples and their data through the multiple laboratory processes was a major logistical challenge.
I helped build a web based application to allow researchers to see the location and status of each sample. The user interface was written in Vue which connected to a backend written in Python via a REST API. Apache Airflow was used to ingest data files and populate a PostgreSQL database.
It was interesting to gain insight into both the genome sequencing and covid testing processes.
Chat interface for financial services
I helped build a trading tool for a secure collaboration platform, Symphony. The user interface was written in React and the backend in Node.js with Redis for data storage. We deployed to an AWS Kubernetes cluster using Ansible and Terraform. We had an extensive integration test suite in Cucumber.
The tool was designed to be used via a chat interface. It used a custom tokeniser and parser to convert the trader shorthand into structured data.
This was my first time using Behaviour Driven Development in earnest. It's often talked about in relation to testing but it's really a software development methodology.
Greenpeace CMS
I worked on the Planet 4 CMS framework which was created by Greenpeace for use by their branches around the world. It is built on WordPress using the modern Block Editor which itself is built on React.
Journal submission platform
I worked in a small distributed team building an open source publishing workflow app. We used Node.js and React with GraphQL and Apollo. It was deployed with Docker and GitLab and tested with Jest and TestCafe.
Social media analytics platform
I architected and built a data aggregation and analysis framework for the agency's many social media analytics client products. It was built on Node.js and PostgreSQL with RabbitMQ to broker messages between server and worker processes. Docker was used to standardise developer, staging and production deployments. Testing used Jest and Docker running on GitLab CI.
Replatforming trainline.com
I worked in a large team rebuilding trainline.com using React and Redux with a Node.js middleware layer talking to backing microservices. We used TypeScript with Webpack and hot module reloading to improve the developer experience. Testing used Jest with Enzyme running on TeamCity.
Financial dashboard
I led a team of four developers to create an administration dashboard for a financial product. It was built on a MEAN stack consisting of MongoDB, ExpressJS, AngularJS and NodeJS with Redis for caching and message queues. It was designed to handle high load and fully tested with Mocha, Karma and Protractor using Jenkins for continuous integration. It was deployed to AWS using Ansible and Packer to create Amazon Machine Images.
Resource booking system for BBC Academy
I led a team of three developers building a web based room, trainer and equipment scheduling and booking management system, incorporating complex business rules and multi user workflows. We used Symfony 2, Doctrine, MySQL, AngularJS, Backbone.js and Bootstrap CSS. Client-server communication was handled by a JSON REST API with XML being used to import data from the upstream SAP system. PHPUnit was used for unit testing.
Ford Mondeo game
I worked on a responsive mobile, tablet and desktop site which included games, interactive graphics and videos. We used AngularJS and GSAP with Gulp and conducted extensive cross-device testing.
Social media analysis tool
I rebuilt a prototype interactive data visualisation showing trends in Twitter users’ subjects of interest using NodeJS, AngularJS, D3JS, Elasticsearch and the Twitter API.
TV user interface prototype
I worked with two developers and several designers to create a keyboard controlled “10-foot UI” prototype for a set-top box product. We used BackboneJS, MarionetteJS, Grunt and many CSS3 features including flex box, animations, transitions and blending modes.
Recommendation engine for Channel 4
I led a team of two developers prototyping a TV recommendation engine for Channel 4. We used Zend Framework, the Twitter API and several semantic analysis tools to recommend content based on users' tweets and social network.
Social analytics platform for Hotwire PR
I led a team of three to build a Twitter and Facebook insights tool for monitoring brands and discovering networks of influence. It has won an industry award and collected over 250m tweets. We used Zend Framework, MySQL, Twitter API, Facebook API, D3.js, SVG, message queues and background jobs.
Publishing platform
Interactive side-scrolling multimedia platform for publishing academic research built using Zend Framework, jQuery, HTML5 Audio and Video.