WordPress | PHP | Ruby/Rails/Spree | Python/Django | Agencies


Antarctic Glaciers

A scientific outreach website built on WordPress with a custom theme, including hierarchical pages, blog posts, image galleries, FAQs, quizzes and an ‘ask a scientist’ section.

Read more…



A scientific outreach website built on WordPress with a custom theme, including latest news, blog posts, PDF newsletters and a members area.

Read more…


Malacological Society of London

A WordPress website built as a child theme of Twenty Thirteen. Uses custom post types with custom fields to allow new journal publications to be easily added.


Malacological Society of London
Malacological Society of London

Emma Cornes

An ecommerce WordPress site built with WooCommerce and a child theme of Woo Canvas.

Emma Cornes

European Malacological Congress

A website to promote and take registrations for the conference, built on WordPress.

Read more…

European Malacological Congress 2014


A WordPress site built around the Twenty Sixteen theme.



Reading Canoe Club

A WordPress website built as a child theme of Twenty Thirteen. Using WordPress multi-site to allow easy setup of micro sites for specific events.


Reading Canoe Club
Reading Canoe Club

Drive Right

A business website. Built on WordPress with a custom theme with translations in 10 different languages. (Development work for Lockside Software.)

Read more…

Drive Right

InMotion Ventures / Studio 107

A suite of WordPress sites with custom themes built to match the designs. With responsive sizing of featured images to display correctly of different screen widths. Built just prior to the release of WordPress 5.0, these were built with Gutenberg plug-in to allow a smooth transition when upgrading.

Using custom post types, and advanced custom fields, for entities such as jobs, team members, portfolio, this allowed for a data structure that could be easily managed through the admin, with the page content automatically generated from the data.

Also including “Master Slider” plug-in for sliders, “Ajax Load More” plug-in for infinite scrolling, and “Contact Form 7” linked with Campaign Monitor integration for the newsletter signup.

(Development for Tone Design.)



An online calculation tool for the luminescence dating lab at Aberystwyth University, written in PHP with tests in PHPUnit and Selenium.

DRAC Calculator (GitHub)

DRAC – Dose Rate Calculator (hosted at Aberystwyth University)



Spree Commerce

I have built a number of e-commerce websites using the Spree e-commerce platform, using HTML, JavaScript/CoffeeScript, CSS/SCSS, with RSpec tests.

This includes building custom themes, integration of sliders and carousels, integration of a lightbox to display large product images, fragment caching to improve load times, loading in recently viewed products via ajax to allow page caching, integration with paypal and stripe, updating sock levels and prices from XML feeds, integration of blog posts, display tweets, generate XML feed for google shopping, integrate meta tags for Facebook OpenGraph and Twitter Cards, customisations to the search queries (including match all search terms instead of match any) and product filtering, streamline checkout pages (to eliminate distractions from the header and footer), display icons for product properties, allow flagging of products with a noindex meta tag until manufactures descriptions have been re-written, conversion tracking with Google Analytics.

I have worked on a number of Spree plugins on GitHub, including: Spree Product Files, Spree Snippets, Spree Order on Account, Spree Blogging, Spree Admin Bar, and Spree Multi Tenant.

Spree Website
Spree Website
Spree Website

Spree Website

Python & Django


A Django CMS website built around integrating a suite of Matlab tools for plotting and analysing cosmogenic-nuclide surface-exposure data. All content is editable through the CMS. The Matlab tools were supplied as Python modules which are imported and run as background tasks with the Matlab runtime, running on a Linux server.


Software Businesses and Agencies

Lockside Software Ltd

I have worked on a number of projects for Lockside Software, including:

  • Ruby-on-Rails development: Rails 5.2, EmberJS 2.18, SQL, DelayedJob, Faye, Spree 4.
  • WordPress developement: WooCommerce, including custom product CSV import, Storefront child theme with custom product listing. Updates and performance optimisations to a high traffic news website. Multi-language WordPress sites.
  • Other development: Updates to bespoke PHP projects, custom PHP code, bhpBMS, Cacti, Horizon (OpenStack) dashboard customisation (Python), and 4D.
  • System Administration: LAMP hosting (Linux, Apache, MySQL, PHP), Rails hosting (Nginx, Puma/Unicorn, PostgreSQL), Amazon Web Services (EC2, S3).
  • 3rd Party API integration: Bigcommerce (JSON), Spree (JSON), TalkTalk (SOAP), Voxility (JSON), Venus (JSON), Virtua1 (SOAP), Vodafone (XML), Daisy (XML), Zen (JSON).
  • Clients include: Geni-Sys, Cromwell, ELD Lighting, Genalog, Newbury Today, Wattlite, Tyre Awareness, Drive Right, Leyton Lighting and Stream Networks.



I have worked on WordPress websites for Tone Product Design.


Forever Creative

I worked on a number of projects for Forever Creative Marketing Agency. This included doing development work on the front end and back end of Ruby-on-Rails websites. Also building HTML newsletters from a graphic designer’s PSD files to be sent via Campaign Monitor.


Forty Two Ltd

I worked as part of a team developing the functionality behind YourTradeBase.com, an online tool aimed at helping tradespeople with their paperwork. Written in Ruby-on-Rails, I was mainly involved in developing the back end functionality in Ruby. This was driven by Cucumber scenarios and implemented via Capybara, supported with RSpec tests. Some of the features I have worked on include: dashboard summaries, account management, automated emails, invoices & estimate paperwork, price lists, jobs, tasks, help tab, and live chat integration.


This site uses cookies. Find out more about cookies.