About Me

Hello There!

I am a technically minded, solutions-driven Full Stack Engineer with a robust background in developing scalable web applications and managing full project lifecycles.

Over my career, I've garnered extensive experience in designing and optimising MySQL databases, implementing comprehensive testing strategies with PHPUnit and creating robust RESTful APIs.

My expertise lies in leveraging the Symfony framework to build maintainable and high-performing web applications, with a keen focus on API design, data security, and user-centered design integration. I have a proven track record of leading cross-functional teams, mentoring new engineers and driving projects to timely and budget-conscious completion.

Throughout my professional journey, I have demonstrated my ability to develop complex financial algorithms and maintain compliance with industry standards. I thrive on solving intricate technical challenges and am passionate about enhancing application performance and user satisfaction.

Work Philosophy

I am passionate about writing clean, maintainable code that delivers robust solutions for users. My approach to software development is grounded in the four pillars of Object-Oriented Programming (OOP) and the five design principles known as SOLID.

  • Polymorphism using inheritance, a child method can then override the parent method to provide their own implementation.
  • Inheritance Inheriting properties and methods from a parent class promoting code reuse.
  • Encapsulation prevents direct access to class data from outside the class using private properties and promotes data hiding. Need to then use Getters and Setters to get and set the data in a controlled form.
  • Abstraction Abstract classes cannot be instantiated directly but serves as a blueprint for other classes. It provides a way to define common properties and methods that can be inherited by its subclasses, which are regular classes that extend the abstract class.

To aid the 4 pillars, I also follow Robert C. Martin's 5 principles of Object-Oriented Design.

  • Single-responsibility Principle this principle states that a class or method should have only one responsibility thus one reason to change.
  • Open-closed Principle to design classes to be open to extension but closed to modification.
  • Liskov Substitution Principle to ensure that subclasses can be used interchangeably with their parent classes (using inheritance and polymorphism).
  • Interface Segregation Principle to create specific and small interfaces to prevent forcing classes to implement unused methods.
  • Dependency Inversion Principle a high level class should not depend on a lower level class both should depend on abstractions (using abstract classes or interfaces).

Dependency Injection plays a significant role in my development process as it leads to decoupling components for better testability and maintainability.

I also apply the KISS i.e. 'Keep It Simple Silly' and DRY i.e. 'Don't Repeat Yourself' methodologies to avoid complexity and redundancy, keeping the codebase efficient and clean.

I strictly follow PSR coding standards, ensuring consistency, interoperability and best practices in my projects.

Additionally, I emphasise Test-Driven Development (TDD) inline with Domain-Driven Design (DDD), focusing on translating real-world concepts into software solutions.

Security and performance are top priorities in my work, with a focus on caching, Symfony Messenger along with RabbitMQ for asynchronous messaging.

I implement strong authentication using OAuth2 and JWT, ensuring data security across all APIs along with adhering to OWASP guidelines.

My Resume

  • Work Experience

  • Senior Software Engineer

    SustainIQ LTD - January 2025 - Present

    Working on a modern SaaS platform using Laravel and React. Responsibilities include developing RESTful APIs, refactoring legacy systems for performance and maintainability, and building dynamic interfaces for real-time data insights. Collaborate across product and data teams to deliver scalable features and enhancements.

  • Lead Software Engineer

    Pulse Sales Solutions LTD - March 2022 - November 2024

    Lead project lifecycles, including planning, execution and delivery. Drive the development process forward through close collaboration with UX and UI designers to create intuitive and effective user interfaces.

  • Senior Software Engineer

    Pulse Sales Solutions LTD - March 2016 - March 2022

    Monitored application performance metrics and conducted performance testing to validate improvements. Crafted clean, modular and maintainable code following industry standards and best practices.

  • Software Engineer

    Zesty LTD - October 2014 - March 2016

    Worked with product managers and stakeholders to understand project requirements and translate into technical solutions. Developed and maintained mortgage and loan calculators for a major UK and Ireland bank, ensuring accuracy, reliability and compliance with financial regulations.

  • Software Engineer

    Seopa LTD - October 2011 - March 2014

    Integrated with external APIs provided by insurance companies to retrieve real-time quotes and policy information. Created and maintained integrations with various insurance providers' APIs to fetch real-time quotes for car, home, and health insurance. Documented technical specifications, API endpoints, and system architecture for the quotation comparison platform.

  • Junior Software Engineer

    Accord IT Solutions LTD - October 2010 - March 2011

    Create custom plugins using Visual Basic to extend the functionality of Sage accountancy software.

  • Business Owner and Junior Software Engineer

    Seopa LTD - August 2008 - October 2010

    Home-based server reseller company specialising in web hosting and website development.


  • Education

  • Postgraduate Diploma

    Ulster University - 2007 - 2008

    Business and Information Innovation.

  • Bachelors Degree

    Ulster University - 2004 - 2007

    Business with Computing.

Areas of expertise

Software Development

As a full stack engineer I have experience with frontend, backend and server setup and management.

PHP

I have 15+ years experience working with the PHP language, I have worked through PHP5 through to PHP8.

Symfony Framework

I have 10+ commercial years working with the Symfony framework and it's where my passion lays.

MYSQL and MSSQL

My two main areas of expertise in database development and management but also have experience using MariaDB, PostgreSQL and MongoDB.

Test Driven Development

In TDD, you first write a test for a new feature to fail, then write the minimal amount of code needed to pass that test, and finally refactor the code (from minimal to efficient) to meet the necessary standards.

Content Management Systems (CMS)

Drupal, WordPress and Prestashop etc.

Skills

HTML
91%
CSS
89%
PHP
87%
SYMFONY
85%

GIT85%

JavaScript84%

MYSQL84%

Restful API's83%

MSSQL82%

TailwindCSS81%

MariaDB81%

Laravel81%

BootstrapCSS80%

PostgreSQL80%

FoundationCSS80%

NodeJS78%

ExpressJS75%

VueJS73%

React72%

Angular71%

MongoDB67%

VB.Net60%

Typescript40%

Python25%

Java20%

Get in Touch

If you need any advice or just want to connect, feel free to reach out at any time.

Contact Me

Contact