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.