I'm a senior PHP developer with a love of photography, climbing mountains, travel & cooking with a splash of yoga & philosophy.
I have extensive experience in building high quality e-commerce websites. See my employment history.
I have a strong focus on code quality and unit testing.
I have experience with all the major PHP frameworks including Magento 1/2, ZF2, Symfony, Laravel & Wordpress.
I am well versed with DevOps: I use Docker daily for development and production with complex setups including Varnish, Redis and RabbitMQ. I use CI/CD on all applicable projects. Git and the CLI are second nature to me.
I am heavily vested in open source and have contributed to many projects - see the open source section for more information.
I am interested in working on projects with a team that cares about creating high quality software, with particular focus on well architected code, unit and integration tests, dependency management and code reviews.
I'm flexible with my working hours and I am happy to work closely with any existing teams & freelancers you work with.
Progressing from junior to senior developer, I worked on a diverse set of projects at various stages, from planning and development to testing and maintenance. I implemented many processes and trained the team including unit testing, code quality, code reviews and continuous integration. I automated many tasks by writing and maintaining a host of tools and applications. I improved versioning processes and migrated 100+ repositories from SVN to GitHub.
My proudest moments came from mentoring and teaching other team members through code reviews, pair programming, discussions and meetings. I transitioned the whole team to writing and understanding unit tests.
I have been involved with the recruitment process and occasionally ran development team meetings.
During my time at JH I also contributed to many open source projects including Magento itself.
Client work I've completed can be summarised as data migrations, import/export systems, payment provider integrations, ERP & PIM integrations, API design and construction, Database design and optimisation and much more.
Many of the sites I have worked on, especially the PWA's have won various awards for being the fastest on the web.
I took the position at Worldwide Clinical Trials as part of my university placement year. Throughout the 12 month period I worked on various projects, through different departments. Due to my high performance the work period was extended up until the day before I started back at university.
My initial role was as a C developer working on a bespoke database system, fixing bugs and amending existing code. I developed scripts and programs in my spare time to automate monotonous tasks which were later rolled out to other staff members.
I then moved on to a penetration testing exercise for a new product due to be released soon for a major retailer where I found and fixed various high security vulnerabilities.
The last period of my employment was focused on developing and maintaining a Zend Framework 1 application and its complex SQL reports, procedures and triggers. I developed a Node.js based notification system fed by database triggers. Towards the end I took over as the lead developer implementing various features to be showcased to customers around the globe.
Similar to the Computer Science Degree with many shared modules including some extra law and forensic modules.
I excelled over a range of modules including Systems Programming, Server Administration, C & PHP.
I won this award due to my consistent high grades and hard work.
According to upwork.com:
Demonstrates skillful use of Magento Enterprise Edition and has proven knowledge of the details of the structure of Magento, which can give someone an advantage when implementing a site using Magento.
We created a framework for teaching programming concepts and verifying the written code. We hope for a community to develop, with many workshops which will provide free programming education for as many topics as there are workshops created. Essentially a platform where people can create lesson plans and the system does everything else.
There are also enterprise opportunities available which we are investigating for consulting and helping businesses teach people how to use their tools and processes.
Wild and without is mine and my partner's travel blog. Built and designed by me using Wordpress and a modern frontend tech. We use the blog to write about our travel adventures and showcase my photography.
December 2018 - now
In order to promote myself I decided to design and create this website. Design is not my forte so for a while now I've made it my mission to learn more by following people in the community. Just recently I've studied the Refactoring UI course. I also used the opportunity to learn some new tools including Tailwind CSS, Webpack and BrowserSync.
I've applied everything I've learnt recently to create a simple, aesthetically pleasing (hopefully!) site to showcase my achievements and experience.
I've contributed to a myriad of open source projects and also maintain my own. This is a great chance to inspect my code style & quality! I've listed a selection of my proudest contributions below. Check my GitHub for more.
Build beautiful PHP CLI menus
A Composer Plugin to manage Magento 1 Core as a project dependency
A PHP CLI component to display a progress bar and last X logs at the same time.
A PHP collection library inspired by Laravel Collections, built using generators to preserve memory
A Zend Framework 2 application for businesses to log and monitor employee start and finish times. I wrote and maintained the application.
A PHP application developed with Slim Framework. PHP backend with admin + auth. Modern frontend with lots of tooling, SASS, Browsersync, Gulp, Postcss, etc.
A simple static HTML site built with Tailwind CSS & Parcel.js. The site was built during the COVID-19 pandemic with a view to create a central resource for photography education, with a focus on resources being given away for free. www.picdemic.com
A Magento 2 module to monitor PHP OpCache from the admin
Import module for Magento 2 - provides commands, logs, reporting, utilities and abstractions for building imports for Magento 2 projects
A Magento 2 module to remove third party cron jobs or to move them to isolated groups
A Magento 2 module to remove messages added to the message manager
A Magento 2 module to allow registering event listeners with a plain PHP callable - minus the config
The de facto Composer installer for Magento 1 third party modules. I rewrite a large portion of the library and provided lots of unit tests.
The most important CLI tool for Magento. I have provided many commands, tests and bug fixes to the project. I was even awarded a PHP Storm license for my work on the project.
Magento 2 PHP eCommerce framework - I contributed some bug fixes.
I contributed datetime-local support.
PHP Dependency Manager - I contributed a few small fixes.
I increased the test coverage of the pretty printer.
Fixed a small bug regarding array merging.
Fixed a small bug regarding validators.
Contributed many features, tests, bug fixes and refactors.
Unconference talk at PHPNW, Manchester
PHP School workshop at PHP Warwickshire, Coventry
I hosted a workshop with my friend Michael Woodward teaching people how to code PHP with PHP School.
PHP School article published on CSS Tricks
Although this might seem like a copy-pasted list of buzzwords - I guarantee my stated experience. If you look through my GitHub code you will find most of the listed tools.
This is a small sample of my skills and toolset experience - there are many more. I am able to learn and adapt fast - which I believe is even more important than tool experience.