About me

I'm a web and mobile app developer based in Norfolk in the UK.

I've worked extensively with the following technologies:

  • HTML5/XHTML
  • Building responsive web pages, including use of Skeleton, Bootstrap and Ratchet
  • CSS, Sass and Compass
  • JavaScript, including:
    • Extensive use of jQuery, jQuery UI and jQuery Mobile, including creating a plugin for jQuery
    • Extensive use of Ionic
    • Extensive use of client-side JavaScript MVC frameworks, primarily Angular.js, Knockout.js and Backbone.js. Have also made some use of React.js and React-Router
    • Extensive use of JavaScript templating libraries, primarily Underscore.js and Handlebars.js
    • Extensive use of Phonegap to build mobile applications using JavaScript for both iOS and Android
    • Unit testing JavaScript applications using Jest, Istanbul, QUnit, nodeunit, Jasmine, Mocha and Chai
    • Using Node.js to build real-time web applications, including use of the Express framework and the Socket.IO library
    • Extensive use of Grunt and Gulp to improve workflow when building web apps, including building Grunt plugins. Have also used Browserify and Webpack
    • Some use of Yeoman to generate boilerplate for projects
  • Python, including:
    • Commercial and personal use of the Django framework, including use of Django REST Framework, Celery, South, Python Social Auth and Tastypie
    • Some personal use of the Bottle and Flask frameworks
    • Use of Lettuce and Behave for writing automated acceptance tests
    • Use of Fabric for automating common server tasks
  • Perl (primarily for systems administration purposes)
  • PHP, including:
    • Commercial experience with the CodeIgniter, Laravel, Zend and Slim frameworks
    • Building reusable libraries
    • Building WordPress themes and plugins, and setting up and administering WordPress
    • Extensive unit and integration testing with PHPSpec, PHPUnit and Mockery
    • Extensive acceptance testing with Behat
    • Generating documentation with ApiGen
  • SQL (primarily MySQL, PostgreSQL and SQLite), as well as some use of CouchDB, MongoDB and Redis
  • Some experience with Ruby, including use of Cucumber for testing purposes
  • Experience configuring Varnish for caching high-traffic web pages
  • Linux and Unix, including experience of shell scripting, sed, awk, Ansible, Vagrant, Apache, Nginx and Postfix configuration, and general systems administration. Have predominantly used Debian and Ubuntu
  • Version control (some experience with Subversion, but I primarily use Git)
  • Using Jenkins and Travis CI, together with Coveralls, for continuous integration

I blog regularly about web development, particularly about Django, Laravel and Node.js, and have also written for Sitepoint. Outside of work and extra-curricular coding I'm a huge fan of Firefly and Archer, and have spent way too much time lately playing No Man's Sky, Subnautica (both the original and Below Zero) and Mass Effect: Legendary Edition. I've also begun developing an appreciation of Guinness and Brewdog's range of ales (Dead Pony Club is my favourite).

Contacting me

You can contact me via this form.