2024 · Selected work
Deliver1
An international-removals platform with instant quotes and multi-step booking across road, sea and air.
Client source code is private. I can discuss the architecture and demonstrate public workflows; repository access requires the client's permission.
- Role
- Full-stack Developer
- Location
- United Kingdom · Remote
- Engagement
- Commercial client project
- Period
- March 2024 – Present
About the project
Deliver1 turns a complex international-moving service into a clear digital journey. Visitors can understand available transport options, request an estimate and progress through structured relocation workflows.
The product is a three-part system: a customer-facing Next.js experience, a Node.js/Strapi API for content and operational data, and a dedicated support portal for customers and staff. I develop across all three, modernising a live conversion journey while building the backend workflows and support tooling around it.
My contribution
- Customer journey — Rebuilt the customer-facing Next.js architecture and developed instant-quote, inventory and multi-step booking journeys with step-specific validation.
- Backend, payments and verification — Extended Strapi with issue/update models, public and internal endpoints and tracking tokens, and integrated Stripe deposits and Firebase phone verification behind server-owned routes with explicit retry and failure states.
- Support portal — Built a separate portal for customer reporting, tracking, evidence uploads and threaded conversations, plus staff assignment and reply workflows — protected throughout by Turnstile, upload allow-lists, rate limits and repeat-submission checks.
Engineering proof
What was hard, what I chose, and how I checked it.
Challenge
A live, conversion-focused moving journey needed the operational backbone to carry a customer issue all the way from public submission through staff ownership, conversation and resolution — without a rebuild that risked the conversion path itself.
Product & engineering decisions
- The customer journey, API and support workspace stay separate, with business data and the logic that sends notifications living in the backend.
- Quotation and booking split into independently validated steps, each with its own schema, so a user never sees a validation error from a stage they haven't reached yet.
- Support is modelled as issues and threaded updates — public replies separated from internal notes — and tracking links stand in for customer accounts.
Quality & outcome
- Payment, verification, upload and email failures stay actionable and never discard work that already saved successfully.
- Shared rate-limit state, security events and a repeatable deployment pipeline cover all three services.
Customers move through quotation, booking and post-booking support in one coherent service, and staff get an auditable workspace for ownership and resolution — each of the three surfaces can now evolve on its own timeline.