src/data/pages/home.json → clientWork
[
{
"title": "Leasing operations platform",
"kind": "Application",
"desc": "A furniture and appliance leasing business was running all its orders on spreadsheets and email. I designed and built the system to replace it. Staff get quotes from suppliers, send estimates and follow each order until delivery. Customers browse the catalogue, build their order and approve the estimate. WordPress is only used for login, the REST API and the back office. All the business rules are on the server, and staff and customers have separate React apps, so cost and margin data never goes to a customer's browser. It has 28 domain modules, an order status flow, PDF estimates, and 43 test suites that run on every deploy.",
"stack": [
"PHP",
"REST API",
"React",
"WordPress (auth + API only)",
"JetEngine"
]
},
{
"title": "Multi-tenant B2B commerce platform",
"kind": "SaaS",
"desc": "Wholesale buyers need more than a normal web shop. I built a multi-tenant platform where one deployment serves many stores, each on its own subdomain. It has quotes and request for quote, price lists per customer group, credit terms and invoicing, roles and permissions, and an audit log of every change. It is API first with a typed SDK, so a store can build its own storefront. Every store also has an MCP endpoint with scoped keys, so AI agents can work with the store's data safely.",
"stack": [
"FastAPI",
"PostgreSQL",
"Redis",
"React",
"Docker",
"MCP"
]
},
{
"title": "Performance and traffic firefighting",
"kind": "Performance",
"desc": "A bilingual WooCommerce store with 42 plugins took 4.6–6.6s to render uncached. Profiling put the cost in PHP rendering, not the database (0.07s). Removing session locking made pages cacheable by the CDN again: cached shop pages now return in ~30ms, a blocking admin check went from 2.57s to 0.003s, and home page HTML shrank 28%. On the same estate, one crawler was generating 84% of traffic (up to 155k requests a day) through faceted filter URLs, each an ~11s cache miss. Contained it in layers: robots.txt, a Cloudflare WAF rule, and a server-level block.",
"stack": [
"WooCommerce",
"PHP profiling",
"Cloudflare WAF",
"LiteSpeed",
"Redis"
]
},
{
"title": "Lead ingestion and spam filtering platform",
"kind": "SaaS",
"desc": "An agency was losing hours to spam and to a different SMTP setup on every client site. I designed and built a multi-tenant platform: per-client endpoints and email settings, submissions scored and filtered, suspect leads held for review, clean leads forwarded automatically.",
"stack": [
"FastAPI",
"MongoDB",
"React",
"Tailwind",
"Docker"
]
},
{
"title": "Static site framework for an agency",
"kind": "Architecture",
"desc": "The agency's WordPress sites were slow and costly to maintain. I proposed and built the replacement: Astro sites with all content in JSON, pages composed from reusable components, deployed on Cloudflare. This site is built the same way.",
"stack": [
"Astro",
"JSON content",
"Cloudflare Pages"
]
},
{
"title": "Operations system inside WordPress",
"kind": "Internal tool",
"desc": "A client wanted an internal system but needed staff to keep the WordPress admin they knew. I kept orders, line items, logs and notifications in dedicated tables instead of posts, and built React dashboards for staff and customers on top of the REST API.",
"stack": [
"WordPress",
"Custom tables",
"REST API",
"React",
"PHP"
]
},
{
"title": "Hosting estate consolidation",
"kind": "Infrastructure",
"desc": "Audited a multi-provider estate of 16 servers and 100+ DNS zones. Designed an ARM-based consolidation, set up automated backups to object storage and storage boxes, and cleared out stale DNS records and 150+ GB of duplicate data.",
"stack": [
"Linux",
"Docker",
"Cloudflare",
"S3 storage"
]
},
{
"title": "Production security remediation",
"kind": "Incident response",
"desc": "Patched a CVSS 10.0 Next.js remote code execution flaw (GHSA-9qr9-h5gf-34mp) across three production containers, and stabilised a compromised WooCommerce store: bot traffic, contaminated serialised data and caching faults.",
"stack": [
"Security",
"Docker",
"Oracle Cloud",
"WooCommerce"
]
},
{
"title": "Shopify builds and integrations",
"kind": "E-commerce",
"desc": "Store builds and rebuilds with custom Liquid themes, third-party systems connected through the Shopify REST and GraphQL APIs, custom pixel events, and UX changes aimed at conversion. Led a major theme upgrade (Broadcast v4 to v8) with custom code kept in isolated snippets so future updates stay safe, and fixed a live search page freeze caused by legacy theme JavaScript.",
"stack": [
"Shopify",
"Liquid",
"GraphQL",
"GA4"
]
},
{
"title": "Healthcare web platforms",
"kind": "Healthcare",
"desc": "A multi-step application portal for a medical facility with conditional form logic, custom roles and admin workflows, and a headless Next.js site for a health brand with WordPress as the editorial backend.",
"stack": [
"WordPress",
"Next.js",
"Headless CMS"
]
}
]