I am a Full Stack (primarily LAMP) Developer living in Southampton, England. I have 12 years of professional experience working for Marketing Agencies.
Web development has always been a hobby as much as a career for me. I have always loved problem solving and this field gives me infinite opportunities to come up with creative solutions to complex scenarios.
I have a passion for learning and relish the opportunity to grow my skills. The web is ever growing and as such, so do I.
I consider myself to be a creative developer as I have a strong eye for design. Although not a core part of my role during my career, it is a skill that provides me great benefit in interpreting designs, as well as improvising on the aspects of a website not covered by static visuals.
With 12 years of experience working in Marketing Agencies comes a wealth of Marketing knowledge which I am able to apply to the overall strategy of my projects to help ensure success.
Expertise
PHP
- OOP
- MVC - both through CMS's such as Joomla and Frameworks like Laravel
- Frameworks - my framework of choice is Laravel. I don't get to use it as often as I would like but I am very comfortable with the core concepts and have worked with other frameworks in the past.
- Consuming REST API's
- Working with Databases using ORM - primarily through Laravel but I have also developed bespoke ORM's where required
Databases
- MySQL
- MSSQL
- PostgreSQL
Content Management Systems
- WordPress - bespoke Plugin and Theme development including both Gutenberg and Classic Editor integration.
- Concrete5
- HubSpot COS
Although the above are my preferred systems, I am a firm believer in using the correct tool for the job and have used many additional systems over the years including; Joomla, Umbraco, EpiServer.
HTML
HTML has been the foundation of all my work since I began studying web design and ensuring it remains semantic and accessible is very important to me.
CSS
- SASS - Code written in SASS and compiled to CSS
- BEM Standard
- Modular - all code is written in separate module files for portability
- Responsive/Content aware layouts
JavaScript
- ECMASript 6
- Vue.js
- jQuery - I have used this for many years and have a lot of experience but my preference with new projects is ECMAScript 6 or Vue.js where appropriate
- NPM/Yarn - I regularly work with third-party packages installed through NPM or Yarn
- Webpack - I use webpack to compile and optimise my own JavaScript modules and third-party modules into production assets
Version Control
I have been using Git for many years and am experienced working both solo and collaborating with teams.
I also have some basic experience with SVN due to working with the WordPress plugin repository.
HTML Emails
Developing emails that work across all devices can be a challenge, especially to work responsively with mobile devices. I have many years experience building email templates and have learned many tips and tricks to make the process simpler.
HubSpot
I have been working with the HubSpot for over 5 years and have a wealth of experience in several areas of the tool:
- HubSpot COS Development
- HubSpot API Development
- General account management
- Inbound marketing methodologies
Server Administration
- Linux - configuration and management through command line or WHM
- Windows - basic IIS configuration
Working with Clients
Throughout my whole professional career, I have been responsible for working directly with and building relationships with clients, either as the sole contact or providing technical expertise to account management teams. Within this role I have been able to resolve issues as well as up sell opportunities.
I have also been responsible for assisting in new business development. This has taken many forms including; gathering requirements, creating and documenting specifications, quoting for projects and presenting proposals directly to clients.
Personal Organisation
I have spent many years working in small teams without a project manager and therefore my personal organisation has been critical. This experience has allowed me to manage my own workloads, meet deadlines and communicate directly with clients.
Experience
Due to confidentiality, I am unable to post direct links or client names to the projects listed below but if you would like more information, please get in touch.
Component Based Development
Working as an agency, we were always looking to improve efficiency on projects. While looking for areas of improvement, we identified that within our projects, we were re-using many common interface elements such as Slideshows, Banners, Content Panels, Grids of Cards etc.
Although it was possible to copy both SASS and JavaScript modules between projects, we found that we were often having to redraw elements during the design phase and it took time to search for previously used examples in other projects, which then needed to be stripped back before applying the new design. Although this did save us time as opposed to re-doing work on each project, it could have been more efficient.
To improve this process, I developed a system which included the following aspects:
- A list of all commonly re-used layout elements between projects. These are referred to as Components
- A costing system for implementing each component allowing us to easily quote for projects based on which components were required
- A set a wireframes for each component which could be easily copied into any new design
- Static HTML, CSS and JavaScript for each component implementing the design at a simple wireframe level
-
Assets for each CMS that we could use to rapidly build pages including:
- Blocks for each component on Concrete5
- Modules for each component on HubSpot
- A WordPress plugin to allow for easy addition of each component to a page using either Advanced Custom Fields Flexible Layouts or Gutenberg Blocks
Using all of these assets meant that we were able to quote more accurately on projects, as well as execute projects quickly and efficiently.
Social Enterprise Coaching Website
I worked with a client who had successfully launched a social enterprise and wanted to use this experience to teach other charities how to do the same.
I developed a platform built on WordPress that enabled prospective enterprises to sign up and have a dashboard. Within this there were several modules which they had to complete. This involved completing very complex forms, which could then be reviewed by a coach and feedback submitted through the platform. Once a user had completed a module, their coach could unlock the next module. It also allowed them to generate PDF's of each module's results including information such as SWOT Analysis.
The final solution used flexible layouts within the Advanced Custom Fields plugin to allow the website admins to generate their own complex forms which could then collect user data, store it to the database and ultimately be output on screen or as a PDF.
Product Selectors
Another client who build bespoke processors had a requirement to allow their users to enter specific requirements and see which processors would best meet their needs, in some cases this could involve multiple instances of the same processor.
The output of this needed to present dynamic graphs and stats which changed based on the requirements and the number of processors needed.
The final solution was developed using Vue.js and has become a first in class for their industry and is providing a massive opportunity for growth.
Zoom Event Management System
I developed a bespoke WordPress plugin to allow management of large-scale meetings run over the Zoom video conferencing platform. The requirement was for users to be able to:
- Sign up for an event
- Pay for a ticket
- Be automatically registered on the Zoom meeting via the Zoom API
- Be sent a confirmation email with connection details
- Be automatically provided with a recording of the meeting after the event
The plugin built contains a full record of all bookings with the data encrypted in the database. Bookings can be edited, gifted, cancelled. A link to the recording is uploaded after each event which each user can access through a login.
In addition, users can also purchase a recording even if they did not attend the original event.
Users can also be emailed directly through the dashboard making communication simple with all users registered to an event.
About Me
When not building websites, my hobbies include:
- Playing Guitar
- Creating Digital Art
- Meditation
- Reading
- Being in nature
- Spending time with my wife