I welcome the opportunity to use my skills to their full extent as I thrive on using my own initiative. I pride myself on my ability in working with designers to implement their vision for a site, as well as technical coding in a web-oriented environment using modern techniques and principles. Having worked closely with a team in an office environment, my skills towards meeting targets, goals, objectives and deadlines have greatly increased. I have dealt with clients, projects and companies from a range of sectors both large and small.
I'm a member of, and organiser for PHP East Midlands, a PHP user group that holds talks and events every month. In 2014 we ran 'PHPEM14' our first 'Unconference' where everyone from new speakers to more established speakers and conference-goers could come, take part, give talks and request things to talk about. This was off the back of PHP North West 14 (PHPNW14) side-track unconference (where I gave a talk).
In 2015 I organised our second Unconference and in 2016 the third.
I'm forever tinkering with something, usually it's the electronics of my quadcopter or a new tool / language.
- (OO) PHP (5 and 7) Development, MySQL. Git (GitHub, Gitlab & Bitbucket) and SVN (though I don't care for it) for version control.
- jQuery, HTML & XML, CSS & SASS
- CMS & eCommerce development and integration.
- Symfony, Doctrine previously I've worked with Laravel.
- Package development and release through Composer & Packagist.
- Advocate and practicioner of BDD & TDD.
- Agile working and conversation-led design by example in code.
- Development on LAMP and LEMP stack, as well as setup on VPS, or dedicated hosting & server solutions. Vagrant, Ansible and some previous experience with Puppet.
- Docker containerisation.
- Continuous integration, continuous delivery pipelines and automated deployments using Jenkins and TeamCity.
- Quality and analysis tooling with Sensio Labs Insight, Coveralls, Scrutinizer.
- Development on Hiawatha Webserver stack (Hiawatha, Unix, MariaDB, PHP)
- Comfortable with a *nix command line and BASH scripting.
- New Relic Server monitoring.
- Responsive front-end development. Experience with the Foundation framework as well as developing my own components using SMACSS and BEM principles.
- Gulp, npm, bower and some previous experience with Grunt for automated asset building.
- Leading a development team and mentoring new apprentices and testers.
- Agile workflow with sprint planning, daily scrums, planning poker and retrospectives.
- ExpressionEngine, Bolt CMS, WordPress as well as 'in-house' developed and bespoke CMS solutions. (Though I don't care much for working with WordPress)
- Experience with various Linux distros as well as OS X, and Windows (desktop) environments.
- Some previous experience with OO Java, C, JSP, XSL, XSQL & Abode Flex Builder 3: MXML Markup with ActionScript 3 for application development.
For talks I've given, or events I've been a part of, check the 'Talks' page.
Viva IT: August 2015 - Present
Senior Software Developer and Community Evangelist
Technical: Working with Symfony, Doctrine, and multi-tenant environments for distributed-service based applications. Ansible and Vagrant for provisioning, automated CI & builds with TeamCity. Automated and continuous testing using Behat, phpspec and PHPUnit.
A lot of the tasks and challenges I undertake required outside-the-box thinking (the best way I can describe it despite my dislike of buzzwords) - the problems often had very unique constraints on what could and couldn't be done with the systems we were working with. As such, the solutions were unique and the challenges interesting.
I've worked heavily with Ops-related tasks using Ansible primarily for reliable provisioning and regular (mutliple times a day) deployments.
I've also worked a fair bit with TSQL to enable us to work with a 3rd party database for one of the core parts of a software ecosystem we were building.
Leading and mentoring the development team to continue making high-quality, well tested and robust business-critical software with code reviews, whiteboarding problems and pair programming. Daily scrums, planning poker and sprint retrospectives in leading an agile workflow.
Behaviour driven development and design by examples through conversations and collaboration.
Facilitating and giving talks, knowledge sharing, community events and ongoing learning sessions for apprentices.
Burnthebook: June 2010 - August 2015
Technical: Interface development in HTML5 & CSS3 with jQuery for enhanced functionality. OO & MVC PHP development, MySQL Database management. Template construction with Smarty, XTemplate and ExpressionEngine's own templating system. Working with version control (Subversion).
Building of sites using ExpressionEngine, CodeIgniter (including DataMapper ORM & Nestedsets libraries), and the in-house eCommerce system. From setup, scoping and initial 'kick-off' right through to client delivery, support & site extensions. Legacy CMS, eCommerce and site support, maintenance, extension and bug fixing.
In the last couple of years of work at Burnthebook, I heavily focused on the in-house built eCommerce software package. The work included:
- Code extension
- New site module setup, ability to have modular code run in new areas of the site
- Writing the new modules to take advantage of the above
- Code documentation
- To support ongoing development of the system, code is being documented to aid with technical support.
- Code Architecture documentation
- From ERD's of the database structure to flow diagrams of processes and code structure.
- Load testing and performance testing.
- Maintenance, support and bug fixing.
Email campaigns, setup of layouts & testing campaigns.
- Scoping of projects & time estimates for technical work,
- Job planning & monthly scheduling,
- Creating project specifications & feature lists,
- Server setup, configuration,
- Load testing, benchmarking & optimisation,
- Reviewing designs, layouts & visuals to identify areas for further discussion into how the design will fit into the functionality of the layout on the Web.
Netready Ltd: September 2008 - April 2010
Junior Software Engineer
Integration of the separate in-house CMS and eCommerce systems into a single package to better suit the needs of clients requiring both Content Management and eCommerce functionality.
PostgreSQL database management.
Email campaigns, setup of layouts, testing & sending campaigns through the in-house systems.
Overseeing site development, from initial discussion, right through to site delivery, client hand-over, feature-extensions and support.
Creation of sites was done on the CMS as well as integrating bespoke custom-written solutions for additional functionality.
De Montfort University
BSc (Hons), Internet Computing, 2006 - 2010
During my time at University, self-motivation and time management were key skills that developed. The "Computing Project" module in Level 3 (Year 4) of my degree was a 300-hour, self-managed project. This meant that the tasks undertaken and the time required to do them had to be planned carefully so that the deadline can be met. The project I undertook was in a new language, which required independent thinking and research. Having a good foundation in programming and previous experience enabled me to manage my time effectively and ensure the project was completed on time, to a high standard.