On this page I’ll detail my areas of expertise.
JS is everywhere nowadays, with the back-end no exception. I’ve worked at startups, and at project-level building back-end services in NodeJS with a strong preference for Typescript.
More recently I have worked on projects using Serverless framework, deployed to Lambda @ AWS.
I’ve over 20 years of experience using PHP. I took an early interest in the language when trying to modify forum software. Since then I’ve specialised in it, and built more websites than I can count with it. The PHP ecosystem has changed drastically in the last few years. Gone are the days of includes, magic quotes and addslashes and PHP now has a fantastic toolset to build modern, maintainable and quick web applications. We now have namespaces, dependency management and incredibly well built components that can be put together to quickly and efficiently build applications.
I particularly like working with Symfony.
I’ve experience working with a few of the major CMS’s such as Wordpress & Drupal.
I’ve worked on MySQL databases for the majority of my career - after all, you need somewhere to store data. I’ve dealt with tables with 100s of millions of rows, working feverishly to optimise queries using indexes and balance load across multiple MySQL servers.
I couldn’t have learnt so much without this brilliant book: High Performance MySQL
Throughout my career I’ve often been responsible for developing the front-end of many of my projects as well as the back-end. I like to think that my front-end skillset is equally as sharp as my back-end skillset. I’ve been writing HTML & CSS for so long I remember having to support Internet Explorer 5. Fortunately those days are over and now I spend that kind of time debugging why webkit keeps flickering animations, or an android browser is performing animations slowly.
I am an AWS Certified Solutions Architect - Associate and AWS Certified Cloud Practioner.
Systems architecture & design
One of the most important skills I have learned to focus on is planning and system design. It is important to plan and design a system that will meet all the goals of the project. This can often include making sure the application is designed in such a way that it’s easily maintained and modified, that it scales and that it takes into account potential problems that may occur further down the line. Having had many years of experience I have learnt to identify very early on in the life cycle of a project what potential pitfalls might occur and address the risks before they happen.
Mobile application development
I have used react native to build a few small mobile applications.
Misc programming languages
Whilst not my no.1 programming languages, I have experimented and used the other following programming languages: