Line Manager at Lightfoot
I am passionate about what I do and try to put 110% in everything. I always try to stay up to date in the latest technologies. Using websites such as Reddit and Twitter, I try to follow as many innovators as possible, these include Dale Reese, Taylor Otwell, Jeffrey Way, Adam Wathan etc. I've used Laravel, Vue to create personal websites and projects and have hosted many websites on Digital Ocean.
I have 8 years of professional PHP experience, but much longer in personal experience.
I have worked on many legacy PHP applications, but have also built a lot of newer PHP apps including Haulfryn (haulfryn.co.uk) and my very personal website (michaelbrooks.co.uk).
For my unit testing, I have used PHPUnit to help test components inside my Composer packages and Laravel's elixir to test user experience and form data.
I tend to think that a good PHP developer must know how to use frontend technologies. I have created websites using the latest HTML5 and CSS3 attributes.
My favourite tools to help compile my frontend code is Laravel's Elixir which goes great with the Laravel framework. I have also used GULP, Bower, Webpack and many more tools to help ease code compilation.
I try to include Vagrant and Homestead with any project I start as I believe that having a VM match your current production environment is very important. I have also delved into Docker on my personal website and have set up 3 containers (PHP-7, NGINX-FPM and MariaDB).
I have created and merged many branches to help ease a company's version control. I have also helped people understand merge conflicts and the best ways to go about merging conflicts into your targeted branch.
Initially started as a 6-month contract which has carried on rolling over.
The first project involved upgrading custom PHP code from PHP 5.6 to version 7.3 and ensuring all deprecated code has been eliminated. Ensuring the project is fully GDPR compliant by working through the spec list. Working through RIPSTech security list which ensures the project isn't vulnerable to SQL injection and all input is validated, as well as other OWASP threats listed.
The second project involved working with Laravel and VueJS to add new features to their enquiry form. All data is pulled in dynamically based on what the user selects and then stored in the database for administrators to view on the admin side.
The third and current project involves upgrading a ZF1 website from PHP 5.6 to PHP 7.4 and ensuring all deprecated code has been eliminated. To get the project working on my local machine, I used Docker instead of Vagrant/Homestead as a chance to use later technologies. It has also made developing this project a lot easier since there were more components to work with. I also had to create a new Microsoft Email shared mailbox in which the web app could interact via the MS Graph API to add specific emails to communication within the website.
Using ReactJS to support and add new features to the Lightfoot portal. This enables clients and customers to easily track their journeys and view events such as harsh acceleration, over-speeds and more. The portal connects and interacts with a backend API built with custom PHP code.
Implemented testing for ReactJS using Jest and Enzyme and PHP app using Codeception, which extends PHPUnit.
Encouraged and implemented the use of continuous integration with CircleCI. Running CircleCI to run our tests and give feedback on our pull requests through GitHub.
Helped support lead developer by supporting legacy ColdFusion websites, bug features and updates on newer websites. They have a large API built with Symfony, which is used as the backbone to all of their Mall 2 Mobile clients who are all using a custom-built CMS also built on Symfony.
When I started at Logo, I could see a couple of opportunities to push new technology to help with development time and future projects. I had introduced GIT to the team and taught everyone the best practices, from creating new branches to deploying code to live.
I had also introduced Vagrant/Homestead, which helps ease the development of code on local machines. This meant that any bugs within our PHP code would be caught sooner rather than later, and we wouldn't have the "well it works on my machine" issue.
A couple of months in, I transferred Enjoy and the Haulfryn projects over to Logo to gain free time in the evenings and help Logo out by giving them a new client. Haulfryn then wanted us to split part of the site on haulfrynholidayhomes.co.uk called My Haulfryn. I then proposed using Unit testing (PHPUnit) and BDD (Laravel's built-in suite) to speed up development time and catch any bugs before the project went live. This also made it easier for Continuous Integration using GitLab and deployment onto the live server.
As well as developing with PHP, I also helped manage our local and remote server datacentres by fixing server crashes and ensuring it wouldn't happen again in the future.
I supported app developers by focusing my efforts on website updates and creating new websites/APIs needed for app development.
During my time at Pulse8 Broadband, Enjoy contacted me and needed help with Haulfryn's websites, which consisted of 4 projects. As I had created and supported the projects during my tenure with Pulse8, they felt that I would be perfect for carrying the work on, and I then took them on as a freelance client.
I would then work on and support the sites during my evenings which had been okayed with my employer at Pulse8 Broadband.
Update and manage http://pulse8broadband.co.uk using custom PHP code along with GIT for version control. Traffic management using Google and Bing SEO tools to build the sites ranks. Social management with Twitter, Facebook and Google+ to ensure we build a good relationship with potential customers.
Built websites for clients such as Haulfryn, Kerb, Delimann and many more. Using custom-built PHP for older sites and newer sites were built on Laravel 4. Used GIT for version control to ensure everyone had the latest code. For newer sites, SEO had to be kept in mind to keep current rankings across all pages.
During my time here, I got given the task to re-develop Haulfryn websites, which were haulfryn.co.uk, haulfrynholidays.co.uk, haulfrynholidayhomes.co.uk and haulfrynresidential.co.uk. I tried to make the administration pages modular by developing my own custom PHP packages using Composer and Bitbucket and used Laravel as the base framework to help drive development time/speed.
National Diploma, Higher National Diploma, ICT Practitioners, Web Media, Distinction*, Triple Distinction