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


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 Womble

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

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.

Screenshot of Domigoals 2012


A clean and classy framework for PHP 5.3 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.

Screenshot of Laravel


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 Pantheon

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

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 Pineapster Tickets

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