Performance engineering

E-commerce performance rescue

A WooCommerce store where the caching plugin had been maxed out and the site was still slow, diagnosed to the actual bottleneck rather than the assumed one.

WooCommerceMySQLRedis object cacheCloudflareWebPageTest

The problem

Describe the symptom as the client experienced it, and what had already been tried.

Approach

  • Field data from the Chrome UX Report alongside lab profiling, to separate a slow server from a slow page.
  • Time-to-first-byte measured first. It identified page generation, not the frontend, as the dominant cost.
  • Slow query log analysis surfaced missing indexes on the largest tables and an autoloaded options table that had grown unchecked.
  • Plugin asset audit: scripts and styles being queued site-wide were restricted to the pages that actually used them.
  • Hero imagery moved to AVIF with correct fallbacks and preloading, and dimensions added everywhere to eliminate layout shift.

More work

Backend & infrastructure

Multi-tenant Laravel platform

A Laravel application serving multiple client organisations from one codebase, with per-tenant data isolation and queued background processing.

LaravelMySQLRedisHorizon +2
Server engineering

cPanel hosting fleet migration

Moving a set of cPanel accounts onto new infrastructure, websites, databases, mailboxes and DNS, with the cutover planned so downtime stayed in minutes.

WHMcPanelIMAPSyncrsync +2
AI engineering

Retrieval-grounded support assistant

A support assistant answering from the organisation's own documentation, with citations on every answer and a clean handover when confidence was low.

Claude APIPythonFastAPIpgvector +2

Something like this on your plate?

Describe the situation and I will tell you how I would approach it.

Start a conversation