Career Profile

With over nineteen years of commercial experience in predominantly backend software engineering and development, and more than ten years in leading and managing technical projects in various Agile teams, I have built up an extensive knowledge of implementing and maintaining web-based and API projects, from small startups to large scalable commercial websites. A combination of my analytical and problem solving skills, hands-on technical leadership and a keen eye for detail allows me to manage and deliver projects quickly, efficiently and to a high standard. I have always enjoyed taking on technical challenges and learning something new, in both the workplace as well as personal projects.

Work Experience

Full-time November 2019 — Present
⦿

Director of Engineering & Technology

October 2022 — Present
  • Hands-on technical leadership including pair programming, code reviews as well as technical mentoring.
  • Working frequently with the CEO, Product Owner and Leadership Team to align on the IT and technical strategy.
  • Working closely with Agile Delivery Manager on the sprint planning, product backlog and roadmap mapping.
  • Supporting cross-team communication and collaboration across the various product functions.
  • Strong attention to detail, communication and organisation skills.
  • Hiring, setting KPIs, team accountabilities, budgeting and team leadership.
  • Full oversight and ownership of the product release process.
  • Creating and improving automated deployment scripts and pipelines.
  • Ensuring the technical safety of the organisation's user data.
  • Security and monitoring across the platform using DataDog, Lumigo and Sentry.
Skills: Leadership, Strategy, Communication, Organisation, Agile, Hands-On, Budgeting, AWS, Serverless, TypeScript, Node.js, Go, IoT, Jira, Unix Bash Scripting, Automation
⦿

Head of Engineering & Technology

August 2020 — October 2022
  • Responsible for all the engineering functions including the backend, frontend, devices and platform teams.
  • Working closely with the Managing Director, Head of Product and Head of Data to plan, execute, test and deploy all engineering functions.
  • Project management using Jira and Asana to organise, track and manage team projects.
  • Responsible for the team's development, testing and rollout of the product in North America.
  • Managing the IoT Gateway portability project to migrate from legacy Java application to new modular Go applications.
  • Accountable for the releases of all services from development through the various QA environments and into the production environments.
  • Recruiting and onboarding of new starters in the engineering team.
  • Leading and mentoring junior members of the team.
  • IoT fleet management across all production environments.
Skills: AWS, Serverless, IoT, TypeScript, Node.js, Git, Full-Stack, Infrastructure-As-Code, Microservices, Go, Asana, Unix Bash Scripting, Buildroot, Docker
⦿

Senior Cross‑Functional Engineer

November 2019 — August 2020
  • Responsible for building and rollout of the IoT Assembler application using Electron, TypeScript and React to enable the business to assemble, QA and onboard new gateways and IoT devices.
  • Maintaining and working on the microservices backend API built using the Serverless framework with TypeScript and involving a wide range of AWS services.
  • Closely involved in the IoT technology of Zigbee, Bluetooth, Wi-Fi, TCP and MQTT.
  • Using a range of core AWS services including DynamoDB, IoT Core, Lambda, API Gateway, SSM, Cloudwatch, Step Functions, etc.
  • Continuous contribution to the web dashboards and mobile apps built in React and React Native respectively.
  • Working on the Gateway Java app running on Embedded Linux to communicate with Assembler application.
Skills: TypeScript, Serverless, Microservices, IoT, Zigbee, Bluetooth, Cellular Connectivity, SSH, AWS, CI/CD, Electron, React, React Native, Jest, Cypress.io, Unix Bash Scripting, Java, Embedded Linux
Full-time August 2017 — October 2019
⦿

Lead Developer

May 2018 — October 2019
  • Led the development of the web team to migrate the website over to Node.js and React.
  • Server‑Side Rendering using Next.js framework.
  • Used Styled‑Components library with Material-UI styling in all the React components.
  • Built REST APIs using TypeScript with Swagger and served through Express.js framework.
  • Worked closely with management and product teams for a seamless migration to the new system.
  • Continuous Integration using Travis CI.
  • Full end‑to‑end integration testing implemented using Jest and Cypress.io frameworks.
  • Full visual regression testing implemented via BlinkDiff image comparison tools and scripts.
Skills: TypeScript, Node.js, Express.js, React, Next.js, Redux, Styled‑Components, Material‑UI, Storybook, Docker, Travis CI, Cypress.io, Jest, AWS (Lambda, CloudWatch, Fargate, S3), GraphQL API, Unix Bash Scripting, BlinkDiff
⦿

Head of Travel Development

August 2017 — May 2018
  • Built the hotel API service from the ground up, using TypeScript with AWS Lambdas running Node.js for a scalable and synchronous hotel price lookup and room availability service.
  • Imported over 500,000 hotels weekly from Expedia, Hotels.com and ebookers.com with their associated images, amenities and all room data.
  • AWS Step Functions to trigger the AWS Lambdas to optimise the concurrency of price lookups.
  • Persistent and session price data stored in Postgres (AWS RDS) and Redis (AWS ElastiCache).
  • Utilised the core libraries of the hotel codebase to build a search microservice in TypeScript.
  • Search microservice powered the autocomplete search for WeShop, powered by Elasticsearch.
  • Consumed an AWS Kinesis event stream from the platform API and continuously pushed data to the Elasticsearch cluster, as well as a daily full re‑index of the database.
Skills: TypeScript, Node.js, Express.js, Docker, Elasticsearch, NPM, AWS ElastiCache (Redis), AWS RDS (Postgres), AWS Lambda, AWS Kinesis Data Consumer, AWS Step Functions, Swagger Docs
Full-time September 2015 — July 2017
⦿

Head of Development

September 2015 — July 2017
  • Built a team to create a hotel comparison website with cashback rewards.
  • Built the frontend website in Laravel and the backend REST API in Lumen.
  • All services Dockerized with PHP 7, Nginx using Postgres and Redis, all hosted on AWS.
  • Hotels database indexed in Elasticsearch to allow fast concurrent API data access and searching.
  • Built around a horizontally scalable model to allow a dynamic number of queue workers.
  • Continuous integration utilising Wercker to allow end‑to‑end automated testing.
  • Focused on code testing (PHPUnit and Codeception) with over 90% code coverage.
  • Various backend tools written in Go and Python for speed and concurrency.
  • DevOps knowledge including DNS management and deploying as well as monitoring applications.
Skills: PHP 7, Nginx, Docker, AWS RDS (Postgres), AWS ElastiCache (Redis), AWS Lambda, AWS CloudWatch, Queue Workers (PHP port of Resque Ruby library), Laravel, Lumen, Elasticsearch, Wercker CI, Cloud Deployment, Go, Python, PHPUnit, Unix Bash Scripting, Let's Encrypt (Certbot)
Full-time May 2010 — September 2015
⦿

Quidco: Technical Team Lead

May 2010 — September 2015
  • More than five years working at the UK's largest cashback site with over 7 million members.
  • Member of the Heads of Tech management team involved in decision making and future planning.
  • Team lead, involved in scrums and project sprint planning, reporting directly to the CTO.
  • Developed the email platform responsible for all outgoing emails (over 20 million monthly emails).
  • Involved in the initial planning and development of the new microservices architecture.
  • Built the processes, framework and APIs to integrate with their external Data Management Portal.
  • Kibana data visualization for Elasticsearch queries and server log monitoring.
Skills: PHP 5, MySQL, Apache, Nginx, Memcached, Gearman, Vagrant, Laravel, Lumen, Zend Framework, Rest APIs, Microservices, Git, PHPUnit, Unix Bash Scripting, Twig, jQuery
Full-time April 2007 — May 2010
⦿

Full-Stack Developer

April 2007 — May 2010
  • Worked on the text messaging platform responsible for inbound and outbound messages for various media competitions.
  • Integrated the Sponge Group messaging platform with the MX Telecom systems.
  • Deployed multiple first version WAP sites for various clients.
  • Built Autotrader's first mobile responsive website integrated with their backend API.
  • Early stage development and testing of building iPhone apps.
Skills: PHP, Postgres, Nginx, MX Telecom, WAP, Rest APIs, PHPUnit, Unix Bash Scripting

Personal Projects

These are some personal projects I try to work on when time allows, or have recently worked on in the past:
  • Raspberry Pi home automation.
  • Personal Android app of “Out of Context Quotes” written in Kotlin with Laravel REST API backend.
  • Custom message handler for a Python WhatsApp library.
  • Personal travel blog and website built in PHP and MySQL.
  • Home automation scripts for Nest security cameras written in Bash and Python using Raspberry Pi.
  • Calendar of sports fixtures and results generated from web scraping tools.
  • Adobe Lightroom photo library management scripts written in Lua.

Technical Skills & Proficiency

Amazon Web Services (7 years)

85%

Serverless (4 years)

80%

TypeScript (7 years)

90%

Node.js (7 years)

90%

IoT (4 years)

90%

Unix Bash Scripting (19 years)

100%

Go (1 year)

30%

React & React Native(6 years)

70%

PHP (21 years)

70%

Python (9 years)

40%

Nginx (13 years)

80%

Web Frameworks (13 years)

100%

Postgres & MySQL (21 years)

60%

Docker (7 years)

80%

SysAdmin & DevOps (11 years)

70%