Initially, I migrated the CrowdLab API from CodeIgniter (PHP) & MySQL to Ruby on Rails & PostgreSQL - re-engineering many of the features based on the company’s experiences of having run the system for a year.

One of the biggest improvements was enabling content additions and amends to be made by the client services team through a web interface. In the early versions of CrowdLab, such work was done by the development team.

After the migration was complete, I designed and implemented new features from the API / Database point of view, and considered the wider reaching effects of features.

I also managed the cloud servers for the staging and production environments, working toward automating as many processes as possible with Ansible and Jenkins.

Screenshot of CrowdLab website


Womble was a new Scouting event in 2012. The website featured some basic information about the activities and an online group booking form. In subsequent years the event content was moved to WordPress to allow the organisers to quickly make updates, while the bookings site was redeveloped using Laravel. The event also had an active Facebook and Twitter presence from the start, with design elements shared across both where possible.


Screenshot of the Womble homepage

High Adventure

High Adventure is an annual mountain exercise, taking place at a different, secret location each year.

I joined the team in 2012 to develop a website giving details of each upcoming event and holding a record of past events. I created the design, inspired by the Scout Association website, and customised it to suit the content. Finally, I populated the site before training other users to update information themselves.


Screenshot of High Adventure website from 2012

Domigoals 2012

Domino’s UK wanted to give away vouchers for every goal scored during Euro 2012. The first 1000 people to tap the “Goal!” button would win a voucher – £5 for the first goal, £10 for the second by the same player, and £20 for a hat-trick.

My role was to develop the server infrastructure to support the apps, including fetching the game data from a 3rd party, registering new users, serving game data to the apps, and correctly awarding vouchers for each goal.

The biggest challenge for me was in handling the massive spikes of users all wanting to win vouchers as each goal was scored, without dropping or blocking any requests. I was required to think outside of the usual RDBMS box when allocating vouchers and aligning them with the winners.

Three screens from the Domigoals 2012 app


Laravel is “a clean and classy framework for PHP web development.”

I was an active member of the community where I reviewed commits, submitted patches, moderated the forums, and discussed code topics with other users.

I developed and maintained an IRC bot written in Laravel, that provided help to users in the main Laravel IRC channels, along with a number of bundles for Laravel 3.

I was a keynote speaker at Laracon 2013, deivering a talk about Software Design Patterns in Laravel 4.

Screenshot of Laravel homepage


I built this app for Pantheon’s 2011 Annual Investor Meeting. The app was installed on strategically-placed iPads; it was used throughout the conference weekend to provide information to and gather feedback from attendees.

Features included:

  • A 10 question survey
  • A short feedback form
  • A photo gallery downloaded from the web on launch
  • A tabbed view of event information
  • Two map screens with information points

The app was written in JavaScript using the Appcelerator Titanium mobile SDK.

This app is not available in the AppStore.

Screenshot of the Pantheon main menu

Hybrid City

In 2010 I attended a workshop and conference in Athens to test the Empedia platform with a group of creative academics. During my visit, I worked with some non-technical people to build a guide and verify the platform with as many people as possible.

Screenshot of Hybrid City map within Empedia

Pineapster Tickets

An event aggregator that imports from various ticket sources, including Ticketline and WeGotTickets, then it removes any duplicates. Every morning it tweets the day’s events to many city-based Twitter accounts.

Screenshot of the Pineapster Tickets homepage showing popular locations and today's events

My Charnwood

A site for residents of Charnwood to find out about their house and local area. Data is mined from over ten different sources and presented to the user in a concise manner. Property-based information was presented in a collection of overview widgets, and a map was available to explore locative information across the borough. I refined My Charnwood over some iterations — adding and improving functionality at each step. My Charnwood was so successful that we continued to build “My” services for two more councils.


Screenshot of My Charnwood's map showing nearby recycling centres