owen.bio

Vodafone

Vodafone is a Telecomms provider headquarted in the UK with a direct presence in 15 countries. With over 300 million customers worldwide, their core UK digital capabilities started a transformation in early 2017. I was incredibly fortunate to be one of the first people engaged at the beginning of this journey and led the front-end of the transformation.

What shipped

  • vodafone.co.uk
    • Self-published server-side rendering solution (react-ssr)
    • Reusable, themeable React component library forming their first true design system
    • Stateful journey composition APIs
    • An architectural journey from monolith to micro sites to micro front-ends
    • A node.js middleware back-end for front-end layer

Impact

  • Faster delivery cadence: 10hr+ overnight releases per sprint → 100+ releases a day in minutes
  • Performance & SEO lift: SSR + caching improved CWV pass rate and organic visibility
  • Reusable design system: component library adopted by 8 teams, driving UI consistency and faster build times.
  • Quality gates: CI with unit/E2E/visual checks caught regressions pre-prod.
  • Developer productivity: Node BFF reduced client complexity.
  • Scalable architecture: monolith → micro-sites → micro front-ends, enabling parallel workstreams and safer experience updates.

My role & scope

  • Principal Front-end Developer that introduced the React/Node stack at the beginning of the digital transformation in a team of 3-4 engineers, before scaling to 8+ teams and 50+ engineers
  • Led on front-end architecture, taking it from monolith, to micro-sites (a react web app per domain), to micro front-ends (individual consumable federated modules)
  • Designed and implemented the node.js proxy middleware servicing millions of vodafone.co.uk API requests
  • Sole creator of server-side rendering library and babel plugin for SEO complaint pages, before well-known frameworks were common place
  • Setup quality automation strategy, educating teams on pillars of testing, with a focus on unit tests, end-to-end tests with Cypress, and visual regression with Applitools
  • Founder of first React web component library, documentation and theming system, servicing vodafone.co.uk and related digital products

Key decisions & trade-offs

  • Build our own SSR (react-ssr) vs adopt early frameworks
    • Trade-off: full control and SEO/perf wins vs maintenance burden
    • Why: Next et al. weren’t mature/available for our constraints; we needed predictable SSR and SEO guarantees immediately.
  • Incremental migration (monolith → micro-sites → micro FEs) vs big-bang
    • Trade-off: some duplication/overhead vs continuous value delivery and lower risk.
    • Continuous value delivery paid off and allowed Vodafone to mature a reliable digital capability
  • Node BFF layer vs direct client→API
    • Trade-off: extra hop vs cleaner contracts, server-side composition, and cache/control at the edge
    • BFF layer cleansed contracts initially (due to legacy tech debt in APIs) but we gradually evolved it to a thin proxy layer
  • Design system with tokens & theming vs ad-hoc components
    • Trade-off: upfront investment vs long-term velocity, consistency, and multi-brand reuse.
    • We spun up a dedicated team (that I led) to spearhead the first library and reduce time to realize benefits
  • Module Federation micro FEs vs single SPA
    • Trade-off: runtime complexity vs true team autonomy and independent deploys.
    • We frequently found changes to shared global components, like the header, meant 5+ teams needed to co-ordinate releases to avoid major inconsistencies in journeys. Module federation solves this - we just use it sparingly.
  • Stateful journey composition APIs vs page-level orchestration
    • Trade-off: centralised logic to maintain vs simpler client code, consistent flows, and observability.
    • We found our front-end code became brittle with orchestration and business logic, centralising this in the service layer was a natural evolution