{
  "name": "projects/radiant-inferno-8721/databases/(default)/documents/site/content",
  "fields": {
    "publishedAt": {
      "stringValue": "2026-09-30T05:42:35.388Z"
    },
    "version": {
      "integerValue": "1790746955388"
    },
    "json": {
      "stringValue": "{\"published\":{\"styled\":{\"variant\":\"full\",\"layout\":\"styled\",\"pages\":[{\"profile\":{\"name\":\"Warren Scantlebury\",\"title\":\"Full Stack Software Engineer\",\"email\":\"warren.scantlebury@gmail.com\",\"website\":\"warren.scantlebury.io\",\"summary\":\"Results-oriented Software Engineer with a Master’s in Computer Science and significant experience in building scalable web applications. Expert in \u003cstrong\u003eTypeScript (Node.js/React)\u003c/strong\u003e and \u003cstrong\u003eDevOps (GCP/Kubernetes)\u003c/strong\u003e. Proven track record of architecting serverless APIs and leading frontend initiatives.\"},\"sections\":[\"education\",\"competencies\",\"achievements\",\"skills\",\"experience\"],\"education\":[{\"degree\":\"MSc Computer Science\",\"uni\":\"University of Nottingham\",\"dates\":\"Sep 2021 – Sep 2022\",\"details\":\"Distinction.\"},{\"degree\":\"BSc Computer Science\",\"uni\":\"UWI Cave Hill\",\"dates\":\"2014 – 2018\",\"details\":\"(1:1) First Class Hons. Double Major.\"}],\"competencies\":[\"Agile & Scrum\",\"CI/CD Pipelines\",\"TDD\",\"JIRA\",\"Microservices Architecture\",\"Junior Mentorship\"],\"achievements\":[{\"role\":\"Submitted Academic Research Paper (Under Review)\",\"org\":\"Emerging Networks and Services in Developing Nations -- Barbados Use Case\",\"note\":\"Co-authored with Supervising Professor, Dr. Milena Radenkovic\"},{\"role\":\"Startup Weekend Winner\",\"org\":\"Google for Entrepreneurs\",\"note\":\"Awarded 'Most Innovative Idea'\"}],\"skills\":{\"Frontend\":[\"TypeScript\",\"JavaScript\",\"React\",\"Next.js\",\"Vue.js\",\"Tailwind CSS\"],\"Backend\":[\"Node.js\",\"Express\",\"RESTful APIs\",\"GraphQL\"],\"DevOps & Cloud\":[\"GCP\",\"AWS Lambda\",\"Kubernetes\",\"Terraform\",\"GitOps\",\"Kafka\",\"SQL\"]},\"experience\":[{\"title\":\"Independent Software Consultant\",\"company\":\"Warren Scantlebury Consulting\",\"dates\":\"Feb 2025 – Present\",\"details\":[\"Freelancing Sofware Engineer taking on end-to-end product work for small businesses: scoping, build, deployment and handover, with the client owning the result.\"],\"engagements\":[{\"client\":\"Bright Sparks Tutoring Agency\",\"dates\":\"Feb 2025 – Present\",\"details\":[\"Designed and delivered the public website and enrolment platform for \u003cstrong\u003eBright Sparks Tutoring Agency\u003c/strong\u003e end to end, from requirements and copy through launch and handover.\",\"Built it on \u003cstrong\u003eNext.js, React and Firebase\u003c/strong\u003e (Firestore, Auth, Cloud Functions): a multi-step enrolment form with validation, a role-based admin dashboard, and email notifications for new enrolments.\",\"Established \u003cb\u003eautomated testing and deployment pipelines\u003c/b\u003e using Cypress, GitHub Actions, and Firebase App Hosting, alongside backend validation and bot protection.\"]}]},{\"title\":\"Software Engineering Consultant\",\"company\":\"The RAD Consulting Group\",\"dates\":\"Oct 2022 – Oct 2026\",\"details\":[\"Architected full-stack applications using \u003cstrong\u003eTypeScript, React (Next.js), and Node.js\u003c/strong\u003e, serving as a core contributor.\"],\"engagements\":[{\"client\":\"Cakebox\",\"dates\":\"Apr 2026 – Sep 2026\",\"details\":[\"Contributed to the \u003cb\u003emigration of a multi-site ecommerce platform from Magento to Shopify\u003c/b\u003e, alongside a \u003cb\u003efull frontend rewrite using modern web technologies\u003c/b\u003e\",\"\u003cb\u003eDesigned and implemented a reusable multi-brand styling architecture\u003c/b\u003e that enabled a shared repository and component library to support multiple websites with significantly different branding, layouts and UI requirements\",\"Created a \u003cb\u003eBEM-inspired design system\u003c/b\u003e that allowed the majority of site-specific styling to be swapped cleanly between brands, while introducing \u003cb\u003efeature-flagged component behaviour\u003c/b\u003e for structural and functional differences that could not be handled through theming alone\",\"Designed the styling system with \u003cb\u003edeveloper usability and maintainability\u003c/b\u003e as key constraints, enabling less experienced client engineers to safely extend and modify individual brand implementations without needing deep knowledge of the wider architecture\",\"\u003cb\u003eArchitected and implemented GTM and GA4 tracking across the multi-site platform\u003c/b\u003e, accounting for multiple brands, Shopify stores, markets, currencies and deployment environments while ensuring the correct analytics configuration was loaded for each context\",\"Solved a complex \u003cb\u003eShopify checkout analytics and attribution challenge\u003c/b\u003e by introducing a dedicated sandbox tracking container and \u003cb\u003estitching user sessions using session identifiers\u003c/b\u003e, preserving critical revenue and behavioural data across storefront, cart and checkout flows\",\"Designed analytics logic to correctly handle \u003cb\u003emultiple Shopify Markets, currencies and store configurations\u003c/b\u003e, including scenarios where several regional sites shared a single Shopify store while others operated independently\",\"\u003cb\u003eDesigned and implemented the collection-time calculation engine\u003c/b\u003e for the fulfilment platform, combining product lead times, store opening hours and operational constraints to provide customers with accurate estimated collection times\",\"Integrated \u003cb\u003eCookiebot consent management\u003c/b\u003e across the platform, ensuring analytics and marketing technologies behaved correctly in response to user consent preferences\"]},{\"client\":\"JCDecaux\",\"dates\":\"Jan 2026 – Mar 2026\",\"details\":[\"Contributed to the development of a \u003cb\u003eclient-facing website and internal submissions platform\u003c/b\u003e, including dedicated client and administrator dashboards with \u003cb\u003erole-based access control\u003c/b\u003e\",\"Implemented workflows allowing clients to \u003cb\u003ecreate, save and resume in-progress submissions\u003c/b\u003e, while enabling administrators to \u003cb\u003ereview, edit, manage and return submissions for further changes\u003c/b\u003e as part of a controlled approval process\",\"Helped design and build a \u003cb\u003estateful submission workflow\u003c/b\u003e supporting multiple user roles, submission statuses and interactions between clients and administrators\",\"Developed a \u003cb\u003elightweight custom CMS within the admin dashboard\u003c/b\u003e, allowing authorised client users to update selected areas of the public website without requiring developer intervention\",\"Contributed to the architecture of a \u003cb\u003eunified administration experience\u003c/b\u003e that combined submission management, user permissions and website content management within a single internal platform\"]},{\"client\":\"Direct Wines\",\"dates\":\"Oct 2025 – Dec 2025\",\"details\":[\"\u003cb\u003eArchitected and led\u003c/b\u003e the delivery of a major website modernisation for \u003cb\u003eDirect Wines\u003c/b\u003e, replacing a poorly performing white-label platform and complex legacy codebase with a \u003cb\u003eleaner, more maintainable architecture\u003c/b\u003e.\",\"Simplified and stabilised a highly complex \u003cb\u003ecomponent and content-modelling system\u003c/b\u003e, addressing maintainability challenges created by the need to support extensive site customisation through a constrained CMS schema.\",\"\u003cb\u003eLed a major redesign of backend microservices\u003c/b\u003e to make them suitable for a \u003cb\u003eserverless architecture\u003c/b\u003e, replacing stateful application patterns introduced in the existing implementation.\",\"Introduced \u003cb\u003erequest-scoped context using Node.js AsyncLocalStorage\u003c/b\u003e, improving \u003cb\u003erequest tracing and observability\u003c/b\u003e while eliminating the need to manually propagate tracing metadata throughout the application.\",\"Developed a \u003cb\u003eproof of concept and migration approach\u003c/b\u003e for moving the frontend from \u003cb\u003eReact to Next.js\u003c/b\u003e while retaining the flexibility of the existing CMS-driven component system.\",\"Optimised the Next.js implementation around \u003cb\u003emodern rendering and caching strategies\u003c/b\u003e, using framework-level performance features to reduce page load times and improve overall application performance.\"]},{\"client\":\"OVO Energy\",\"dates\":\"Oct 2022 – Nov 2025\",\"details\":[\"Orchestrated containerized microservices on \u003cstrong\u003eKubernetes\u003c/strong\u003e, integrating \u003cstrong\u003eKafka\u003c/strong\u003e for event streaming and \u003cstrong\u003eBigQuery\u003c/strong\u003e.\",\"Engineered cloud infrastructure on \u003cstrong\u003eGCP\u003c/strong\u003e using \u003cstrong\u003eTerraform\u003c/strong\u003e and \u003cstrong\u003eHelm\u003c/strong\u003e, implementing\"]}]},{\"title\":\"Software Engineer\",\"company\":\"Smartterm Ltd\",\"dates\":\"Jan 2021 – Jun 2021\",\"details\":[\"Developed high-performance educational platforms using Agile methodologies.\",\"Built secure video conferencing features in \u003cstrong\u003eNext.js\u003c/strong\u003e integrating AWS Chime SDK and AWS Cognito.\"]}]},{\"profile\":{\"name\":\"Warren Scantlebury\",\"title\":\"Full Stack Software Engineer\",\"email\":\"warren.scantlebury@gmail.com\",\"website\":\"warren.scantlebury.io\"},\"sections\":[\"experience\",\"interests\",\"projects\"],\"continued\":[\"experience\"],\"experience\":[{\"title\":\"Software Engineer\",\"company\":\"Smartmatic International\",\"dates\":\"Sep 2019 – Dec 2020\",\"details\":[\"\u003cstrong\u003eLead Frontend Developer\u003c/strong\u003e for an Angular 9 election application, implementing complex Internationalization.\",\"Co-developed a company-wide Design System focused on Accessibility using \u003cstrong\u003eWeb Components\u003c/strong\u003e and Vue.js.\"]},{\"title\":\"Web Developer\",\"company\":\"Hyuna International\",\"dates\":\"May 2017 – Sep 2019\",\"details\":[\"Designed and deployed a critical internal RESTful API central to daily operations.\",\"Developed serverless microservices using AWS Lambda and API Gateway.\"]}],\"interests\":[{\"name\":\"Hardware Tinkering\",\"desc\":\"Raspberry Pi & Arduino, Home automation, Homelab setup\"},{\"name\":\"Cricket\",\"desc\":\"Competitive play & Captaincy\"},{\"name\":\"PWA Research\",\"desc\":\"Coding on the bleeding edge of web tech and Pushing web capabilities\"},{\"name\":\"Homelab\"}],\"projects\":[{\"title\":\"Web Chat\",\"desc\":\"Engineered a PWA with real-time messaging, voice notes, and push notifications.\",\"tech\":\"Vue • Socket.IO • MongoDB • Firebase • Service Workers\"},{\"title\":\"Noez\",\"desc\":\"Developed a multiplayer game with real-time state synchronization and live chat using Firestore.\",\"tech\":\"React • TypeScript • Vite • Capacitor • Firebase Functions • Firestore\"},{\"title\":\"Fitnese\",\"desc\":\"Fitnese is an activity tracking app focused on detailed exercise metadata, injury risk tracking, rehabilitation benefits, and offline-first functionality.\",\"tech\":\"React • TypeScript • Vite • Supabase • PostgreSQL • Capacitor • Workbox\"}]}]},\"ats\":{\"variant\":\"ats\",\"layout\":\"ats\",\"pages\":[{\"profile\":{\"name\":\"Warren Scantlebury\",\"title\":\"Full Stack Software Engineer\",\"email\":\"warren.scantlebury@gmail.com\",\"website\":\"warren.scantlebury.io\",\"summary\":\"Results-oriented Software Engineer with a Master’s in Computer Science and significant experience in building scalable web applications. Expert in \u003cstrong\u003eTypeScript (Node.js/React)\u003c/strong\u003e and \u003cstrong\u003eDevOps (GCP/Kubernetes)\u003c/strong\u003e. Proven track record of architecting serverless APIs and leading frontend initiatives.\"},\"sections\":[\"experience\",\"education\",\"skills\",\"competencies\",\"interests\",\"achievements\",\"projects\"],\"experience\":[{\"title\":\"Independent Software Consultant\",\"company\":\"Warren Scantlebury Consulting\",\"dates\":\"Feb 2025 – Present\",\"details\":[\"Freelancing Sofware Engineer taking on end-to-end product work for small businesses: scoping, build, deployment and handover, with the client owning the result.\"],\"engagements\":[{\"client\":\"Bright Sparks Tutoring Agency\",\"dates\":\"Feb 2025 – Present\",\"details\":[\"Designed and delivered the public website and enrolment platform for \u003cstrong\u003eBright Sparks Tutoring Agency\u003c/strong\u003e end to end, from requirements and copy through launch and handover.\",\"Built it on \u003cstrong\u003eNext.js, React and Firebase\u003c/strong\u003e (Firestore, Auth, Cloud Functions): a multi-step enrolment form with validation, a role-based admin dashboard, and email notifications for new enrolments.\",\"Established \u003cb\u003eautomated testing and deployment pipelines\u003c/b\u003e using Cypress, GitHub Actions, and Firebase App Hosting, alongside backend validation and bot protection.\"]}]},{\"title\":\"Software Engineering Consultant\",\"company\":\"The RAD Consulting Group\",\"dates\":\"Oct 2022 – Oct 2026\",\"details\":[\"Architected full-stack applications using \u003cstrong\u003eTypeScript, React (Next.js), and Node.js\u003c/strong\u003e, serving as a core contributor.\"],\"engagements\":[{\"client\":\"Cakebox\",\"dates\":\"Apr 2026 – Sep 2026\",\"details\":[\"Contributed to the \u003cb\u003emigration of a multi-site ecommerce platform from Magento to Shopify\u003c/b\u003e, alongside a \u003cb\u003efull frontend rewrite using modern web technologies\u003c/b\u003e\",\"Created a \u003cb\u003eBEM-inspired design system\u003c/b\u003e that allowed the majority of site-specific styling to be swapped cleanly between brands, while introducing \u003cb\u003efeature-flagged component behaviour\u003c/b\u003e for structural and functional differences that could not be handled through theming alone\",\"\u003cb\u003eArchitected and implemented GTM and GA4 tracking across the multi-site platform\u003c/b\u003e, accounting for multiple brands, Shopify stores, markets, currencies and deployment environments while ensuring the correct analytics configuration was loaded for each context\",\"Solved a complex \u003cb\u003eShopify checkout analytics and attribution challenge\u003c/b\u003e by introducing a dedicated sandbox tracking container and \u003cb\u003estitching user sessions using session identifiers\u003c/b\u003e, preserving critical revenue and behavioural data across storefront, cart and checkout flows\",\"Designed analytics logic to correctly handle \u003cb\u003emultiple Shopify Markets, currencies and store configurations\u003c/b\u003e, including scenarios where several regional sites shared a single Shopify store while others operated independently\"]},{\"client\":\"JCDecaux\",\"dates\":\"Jan 2026 – Mar 2026\",\"details\":[\"Contributed to the development of a \u003cb\u003eclient-facing website and internal submissions platform\u003c/b\u003e, including dedicated client and administrator dashboards with \u003cb\u003erole-based access control\u003c/b\u003e\",\"Implemented workflows allowing clients to \u003cb\u003ecreate, save and resume in-progress submissions\u003c/b\u003e, while enabling administrators to \u003cb\u003ereview, edit, manage and return submissions for further changes\u003c/b\u003e as part of a controlled approval process\",\"Helped design and build a \u003cb\u003estateful submission workflow\u003c/b\u003e supporting multiple user roles, submission statuses and interactions between clients and administrators\"]},{\"client\":\"Direct Wines\",\"dates\":\"Oct 2025 – Dec 2025\",\"details\":[\"\u003cb\u003eArchitected and led\u003c/b\u003e the delivery of a major website modernisation for \u003cb\u003eDirect Wines\u003c/b\u003e, replacing a poorly performing white-label platform and complex legacy codebase with a \u003cb\u003eleaner, more maintainable architecture\u003c/b\u003e.\",\"Simplified and stabilised a highly complex \u003cb\u003ecomponent and content-modelling system\u003c/b\u003e, addressing maintainability challenges created by the need to support extensive site customisation through a constrained CMS schema.\",\"\u003cb\u003eLed a major redesign of backend microservices\u003c/b\u003e to make them suitable for a \u003cb\u003eserverless architecture\u003c/b\u003e, replacing stateful application patterns introduced in the existing implementation.\",\"Introduced \u003cb\u003erequest-scoped context using Node.js AsyncLocalStorage\u003c/b\u003e, improving \u003cb\u003erequest tracing and observability\u003c/b\u003e while eliminating the need to manually propagate tracing metadata throughout the application.\",\"Optimised the Next.js implementation around \u003cb\u003emodern rendering and caching strategies\u003c/b\u003e, using framework-level performance features to reduce page load times and improve overall application performance.\"]},{\"client\":\"OVO Energy\",\"dates\":\"Oct 2022 – Nov 2025\",\"details\":[\"Orchestrated containerized microservices on \u003cstrong\u003eKubernetes\u003c/strong\u003e, integrating \u003cstrong\u003eKafka\u003c/strong\u003e for event streaming and \u003cstrong\u003eBigQuery\u003c/strong\u003e.\",\"Engineered cloud infrastructure on \u003cstrong\u003eGCP\u003c/strong\u003e using \u003cstrong\u003eTerraform\u003c/strong\u003e and \u003cstrong\u003eHelm\u003c/strong\u003e, implementing\"]}]},{\"title\":\"Software Engineer\",\"company\":\"Smartterm Ltd\",\"dates\":\"Jan 2021 – Jun 2021\",\"details\":[\"Developed high-performance educational platforms using Agile methodologies.\",\"Built secure video conferencing features in \u003cstrong\u003eNext.js\u003c/strong\u003e integrating AWS Chime SDK and AWS Cognito.\"]},{\"title\":\"Software Engineer\",\"company\":\"Smartmatic International\",\"dates\":\"Sep 2019 – Dec 2020\",\"details\":[\"\u003cstrong\u003eLead Frontend Developer\u003c/strong\u003e for an Angular 9 election application, implementing complex Internationalization.\",\"Co-developed a company-wide Design System focused on Accessibility using \u003cstrong\u003eWeb Components\u003c/strong\u003e and Vue.js.\"]},{\"title\":\"Web Developer\",\"company\":\"Hyuna International\",\"dates\":\"May 2017 – Sep 2019\",\"details\":[\"Designed and deployed a critical internal RESTful API central to daily operations.\",\"Developed serverless microservices using AWS Lambda and API Gateway.\"]}],\"education\":[{\"degree\":\"MSc Computer Science\",\"uni\":\"University of Nottingham\",\"dates\":\"Sep 2021 – Sep 2022\",\"details\":\"Distinction.\"},{\"degree\":\"BSc Computer Science\",\"uni\":\"UWI Cave Hill\",\"dates\":\"2014 – 2018\",\"details\":\"(1:1) First Class Hons. Double Major.\"}],\"skills\":{\"Frontend\":[\"TypeScript\",\"JavaScript\",\"React\",\"Next.js\",\"Vue.js\",\"Tailwind CSS\"],\"Backend\":[\"Node.js\",\"Express\",\"RESTful APIs\",\"GraphQL\"],\"DevOps & Cloud\":[\"GCP\",\"AWS Lambda\",\"Kubernetes\",\"Terraform\",\"GitOps\",\"Kafka\",\"SQL\"]},\"competencies\":[\"Agile & Scrum\",\"CI/CD Pipelines\",\"TDD\",\"JIRA\",\"Microservices Architecture\",\"Junior Mentorship\"],\"interests\":[{\"name\":\"Hardware Tinkering\",\"desc\":\"Raspberry Pi & Arduino, Home automation, Homelab setup\"},{\"name\":\"Cricket\",\"desc\":\"Competitive play & Captaincy\"},{\"name\":\"PWA Research\",\"desc\":\"Coding on the bleeding edge of web tech and Pushing web capabilities\"}],\"achievements\":[{\"role\":\"Startup Weekend Winner\",\"org\":\"Google for Entrepreneurs\",\"note\":\"Awarded 'Most Innovative Idea'\"},{\"role\":\"Submitted Academic Research Paper (Under Review)\",\"org\":\"Emerging Networks and Services in Developing Nations -- Barbados Use Case\",\"note\":\"Co-authored with Supervising Professor, Dr. Milena Radenkovic\"}],\"projects\":[{\"title\":\"Web Chat\",\"desc\":\"Engineered a PWA with real-time messaging, voice notes, and push notifications.\",\"tech\":\"Vue • Socket.IO • MongoDB • Firebase • Service Workers\"},{\"title\":\"Noez\",\"desc\":\"Developed a multiplayer game with real-time state synchronization and live chat using Firestore.\",\"tech\":\"React • TypeScript • Vite • Capacitor • Firebase Functions • Firestore\"}]}]}},\"timeline\":{\"name\":\"Warren Scantlebury\",\"items\":[{\"id\":\"eng-cakebox\",\"kind\":\"engagement\",\"title\":\"Cakebox\",\"start\":\"2026-04\",\"end\":\"2026-09\",\"dates\":\"Apr 2026 – Sep 2026\",\"tags\":[\"client\"],\"parent\":\"job-rad\",\"bullets\":[\"Contributed to the \u003cb\u003emigration of a multi-site ecommerce platform from Magento to Shopify\u003c/b\u003e, alongside a \u003cb\u003efull frontend rewrite using modern web technologies\u003c/b\u003e\",\"\u003cb\u003eDesigned and implemented a reusable multi-brand styling architecture\u003c/b\u003e that enabled a shared repository and component library to support multiple websites with significantly different branding, layouts and UI requirements\",\"Created a \u003cb\u003eBEM-inspired design system\u003c/b\u003e that allowed the majority of site-specific styling to be swapped cleanly between brands, while introducing \u003cb\u003efeature-flagged component behaviour\u003c/b\u003e for structural and functional differences that could not be handled through theming alone\",\"Designed the styling system with \u003cb\u003edeveloper usability and maintainability\u003c/b\u003e as key constraints, enabling less experienced client engineers to safely extend and modify individual brand implementations without needing deep knowledge of the wider architecture\",\"\u003cb\u003eArchitected and implemented GTM and GA4 tracking across the multi-site platform\u003c/b\u003e, accounting for multiple brands, Shopify stores, markets, currencies and deployment environments while ensuring the correct analytics configuration was loaded for each context\",\"Solved a complex \u003cb\u003eShopify checkout analytics and attribution challenge\u003c/b\u003e by introducing a dedicated sandbox tracking container and \u003cb\u003estitching user sessions using session identifiers\u003c/b\u003e, preserving critical revenue and behavioural data across storefront, cart and checkout flows\",\"Designed analytics logic to correctly handle \u003cb\u003emultiple Shopify Markets, currencies and store configurations\u003c/b\u003e, including scenarios where several regional sites shared a single Shopify store while others operated independently\",\"\u003cb\u003eDesigned and implemented the collection-time calculation engine\u003c/b\u003e for the fulfilment platform, combining product lead times, store opening hours and operational constraints to provide customers with accurate estimated collection times\",\"Integrated \u003cb\u003eCookiebot consent management\u003c/b\u003e across the platform, ensuring analytics and marketing technologies behaved correctly in response to user consent preferences\"]},{\"id\":\"eng-jcdecaux\",\"kind\":\"engagement\",\"title\":\"JCDecaux\",\"start\":\"2026-01\",\"end\":\"2026-03\",\"dates\":\"Jan 2026 – Mar 2026\",\"tags\":[\"client\"],\"parent\":\"job-rad\",\"bullets\":[\"Contributed to the development of a \u003cb\u003eclient-facing website and internal submissions platform\u003c/b\u003e, including dedicated client and administrator dashboards with \u003cb\u003erole-based access control\u003c/b\u003e\",\"Implemented workflows allowing clients to \u003cb\u003ecreate, save and resume in-progress submissions\u003c/b\u003e, while enabling administrators to \u003cb\u003ereview, edit, manage and return submissions for further changes\u003c/b\u003e as part of a controlled approval process\",\"Helped design and build a \u003cb\u003estateful submission workflow\u003c/b\u003e supporting multiple user roles, submission statuses and interactions between clients and administrators\",\"Developed a \u003cb\u003elightweight custom CMS within the admin dashboard\u003c/b\u003e, allowing authorised client users to update selected areas of the public website without requiring developer intervention\",\"Contributed to the architecture of a \u003cb\u003eunified administration experience\u003c/b\u003e that combined submission management, user permissions and website content management within a single internal platform\"]},{\"id\":\"eng-direct-wines\",\"kind\":\"engagement\",\"title\":\"Direct Wines\",\"start\":\"2025-10\",\"end\":\"2025-12\",\"dates\":\"Oct 2025 – Dec 2025\",\"tags\":[\"client\"],\"parent\":\"job-rad\",\"bullets\":[\"\u003cb\u003eArchitected and led\u003c/b\u003e the delivery of a major website modernisation for \u003cb\u003eDirect Wines\u003c/b\u003e, replacing a poorly performing white-label platform and complex legacy codebase with a \u003cb\u003eleaner, more maintainable architecture\u003c/b\u003e.\",\"Simplified and stabilised a highly complex \u003cb\u003ecomponent and content-modelling system\u003c/b\u003e, addressing maintainability challenges created by the need to support extensive site customisation through a constrained CMS schema.\",\"\u003cb\u003eLed a major redesign of backend microservices\u003c/b\u003e to make them suitable for a \u003cb\u003eserverless architecture\u003c/b\u003e, replacing stateful application patterns introduced in the existing implementation.\",\"Introduced \u003cb\u003erequest-scoped context using Node.js AsyncLocalStorage\u003c/b\u003e, improving \u003cb\u003erequest tracing and observability\u003c/b\u003e while eliminating the need to manually propagate tracing metadata throughout the application.\",\"Developed a \u003cb\u003eproof of concept and migration approach\u003c/b\u003e for moving the frontend from \u003cb\u003eReact to Next.js\u003c/b\u003e while retaining the flexibility of the existing CMS-driven component system.\",\"Optimised the Next.js implementation around \u003cb\u003emodern rendering and caching strategies\u003c/b\u003e, using framework-level performance features to reduce page load times and improve overall application performance.\"]},{\"id\":\"eng-bright-sparks\",\"kind\":\"engagement\",\"title\":\"Bright Sparks Tutoring Agency\",\"start\":\"2025-02\",\"end\":null,\"dates\":\"Feb 2025 – Present\",\"tags\":[\"client\",\"fullstack\",\"devops\"],\"parent\":\"job-wsc\",\"bullets\":[\"Designed and delivered the public website and enrolment platform for \u003cstrong\u003eBright Sparks Tutoring Agency\u003c/strong\u003e end to end, from requirements and copy through launch and handover.\",\"Built it on \u003cstrong\u003eNext.js, React and Firebase\u003c/strong\u003e (Firestore, Auth, Cloud Functions): a multi-step enrolment form with validation, a role-based admin dashboard, and email notifications for new enrolments.\",\"Established \u003cb\u003eautomated testing and deployment pipelines\u003c/b\u003e using Cypress, GitHub Actions, and Firebase App Hosting, alongside backend validation and bot protection.\"]},{\"id\":\"job-wsc\",\"kind\":\"job\",\"title\":\"Independent Software Consultant\",\"start\":\"2025-02\",\"end\":null,\"dates\":\"Feb 2025 – Present\",\"tags\":[\"fullstack\",\"devops\",\"consulting\"],\"org\":\"Warren Scantlebury Consulting\",\"bullets\":[\"Freelancing Sofware Engineer taking on end-to-end product work for small businesses: scoping, build, deployment and handover, with the client owning the result.\"]},{\"id\":\"eng-ovo\",\"kind\":\"engagement\",\"title\":\"OVO Energy\",\"start\":\"2022-10\",\"end\":\"2025-11\",\"dates\":\"Oct 2022 – Nov 2025\",\"tags\":[\"client\",\"fullstack\",\"devops\"],\"parent\":\"job-rad\",\"bullets\":[\"Orchestrated containerized microservices on \u003cstrong\u003eKubernetes\u003c/strong\u003e, integrating \u003cstrong\u003eKafka\u003c/strong\u003e for event streaming and \u003cstrong\u003eBigQuery\u003c/strong\u003e.\",\"Engineered cloud infrastructure on \u003cstrong\u003eGCP\u003c/strong\u003e using \u003cstrong\u003eTerraform\u003c/strong\u003e and \u003cstrong\u003eHelm\u003c/strong\u003e, implementing\"]},{\"id\":\"job-rad\",\"kind\":\"job\",\"title\":\"Software Engineering Consultant\",\"start\":\"2022-10\",\"end\":\"2026-10\",\"dates\":\"Oct 2022 – Oct 2026\",\"tags\":[\"fullstack\",\"devops\"],\"org\":\"The RAD Consulting Group\",\"bullets\":[\"Architected full-stack applications using \u003cstrong\u003eTypeScript, React (Next.js), and Node.js\u003c/strong\u003e, serving as a core contributor.\"]},{\"id\":\"edu-msc-nottingham\",\"kind\":\"education\",\"title\":\"MSc Computer Science\",\"start\":\"2021-09\",\"end\":\"2022-09\",\"dates\":\"Sep 2021 – Sep 2022\",\"tags\":[],\"org\":\"University of Nottingham\",\"details\":\"Distinction.\"},{\"id\":\"job-smartterm\",\"kind\":\"job\",\"title\":\"Software Engineer\",\"start\":\"2021-01\",\"end\":\"2021-06\",\"dates\":\"Jan 2021 – Jun 2021\",\"tags\":[\"frontend\"],\"org\":\"Smartterm Ltd\",\"bullets\":[\"Developed high-performance educational platforms using Agile methodologies.\",\"Built secure video conferencing features in \u003cstrong\u003eNext.js\u003c/strong\u003e integrating AWS Chime SDK and AWS Cognito.\"]},{\"id\":\"job-smartmatic\",\"kind\":\"job\",\"title\":\"Software Engineer\",\"start\":\"2019-09\",\"end\":\"2020-12\",\"dates\":\"Sep 2019 – Dec 2020\",\"tags\":[\"frontend\"],\"org\":\"Smartmatic International\",\"bullets\":[\"\u003cstrong\u003eLead Frontend Developer\u003c/strong\u003e for an Angular 9 election application, implementing complex Internationalization.\",\"Co-developed a company-wide Design System focused on Accessibility using \u003cstrong\u003eWeb Components\u003c/strong\u003e and Vue.js.\"]},{\"id\":\"job-hyuna\",\"kind\":\"job\",\"title\":\"Web Developer\",\"start\":\"2017-05\",\"end\":\"2019-09\",\"dates\":\"May 2017 – Sep 2019\",\"tags\":[\"backend\"],\"org\":\"Hyuna International\",\"bullets\":[\"Designed and deployed a critical internal RESTful API central to daily operations.\",\"Developed serverless microservices using AWS Lambda and API Gateway.\"]},{\"id\":\"edu-bsc-uwi\",\"kind\":\"education\",\"title\":\"BSc Computer Science\",\"start\":\"2014\",\"end\":\"2018\",\"dates\":\"2014 – 2018\",\"tags\":[],\"org\":\"UWI Cave Hill\",\"details\":\"(1:1) First Class Hons. Double Major.\"},{\"id\":\"edu-hc\",\"kind\":\"education\",\"title\":\"Associate Degree\",\"start\":\"2012-09\",\"end\":\"2014-09\",\"dates\":\"Sep 2012 – Sep 2014\",\"tags\":[],\"org\":\"Harrison College\"}]},\"projects\":[{\"id\":\"proj-budgit\",\"title\":\"Budgit\",\"tagline\":\"Photograph a receipt, get a budget\",\"description\":\"Snap a receipt and the line items, discounts, store and date are extracted and categorised for you. A Next.js app on Firebase with Genkit and Gemini for the understanding, backed by a self-hosted FastAPI and PaddleOCR service that pre-processes and reads the image so the model gets clean text.\",\"tech\":[\"Next.js\",\"Firebase\",\"Genkit\",\"Gemini\",\"FastAPI\",\"PaddleOCR\"],\"year\":2026,\"status\":\"in-progress\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/budgit-full\"},\"tags\":[\"ai\",\"ocr\",\"fintech\"],\"home\":\"featured\"},{\"id\":\"proj-ebay-deal-finder\",\"title\":\"eBay deal finder\",\"tagline\":\"Scheduled marketplace searches with explainable ranking\",\"description\":\"A self-hostable monorepo for scheduled marketplace searches, AI-assisted listing normalisation and ranking that shows its reasoning. Next.js 16, Supabase and a ports-and-adapters core so the marketplace and AI providers can be swapped.\",\"tech\":[\"Next.js\",\"TypeScript\",\"Supabase\",\"pnpm workspaces\"],\"year\":2026,\"status\":\"in-progress\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/ebay-shenanigans\"},\"tags\":[\"ai\"],\"home\":\"more\"},{\"id\":\"proj-healthlog\",\"title\":\"HealthLog\",\"tagline\":\"One timeline for every condition you manage\",\"description\":\"A multi-condition health logging PWA with consent-based sharing, so a doctor or caregiver sees only what you grant them. Next.js App Router with cookie-based Supabase auth, Serwist for offline, and a schema designed for scoped and revocable access.\",\"tech\":[\"Next.js\",\"React\",\"Supabase\",\"Tailwind CSS\",\"Serwist\"],\"year\":2026,\"status\":\"live\",\"links\":{\"live\":\"https://health-monitor-bay.vercel.app\",\"source\":\"https://github.com/warren488/health-monitor\"},\"tags\":[\"pwa\",\"health\",\"privacy\"],\"home\":\"featured\"},{\"id\":\"proj-homelab-monitoring\",\"title\":\"Homelab monitoring\",\"tagline\":\"Prometheus and Grafana for the rack at home\",\"description\":\"A Docker Compose stack watching a Proxmox cluster and a TrueNAS box: node, SMART, cAdvisor, blackbox and Proxmox exporters into Prometheus, Grafana dashboards, and Alertmanager so I hear about a dying disk before it dies.\",\"tech\":[\"Prometheus\",\"Grafana\",\"Alertmanager\",\"Docker Compose\",\"Proxmox\",\"TrueNAS\"],\"year\":2026,\"status\":\"in-progress\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/monitoring\"},\"tags\":[\"homelab\",\"observability\"],\"home\":\"featured\"},{\"id\":\"proj-dominoes\",\"title\":\"Noez\",\"tagline\":\"Multiplayer Caribbean dominoes, on the web and in your pocket\",\"description\":\"Live sessions with friends, spectators on the rail, table votes, stats and ranks, and play-by-play replays of every finished game. One React codebase ships as a web app, a PWA and an Android app. All writes go through Cloud Functions, with a tested Firestore rules suite guarding the read side.\",\"tech\":[\"React\",\"TypeScript\",\"Vite\",\"Capacitor\",\"Firebase Functions\",\"Firestore\"],\"year\":2026,\"status\":\"live\",\"links\":{\"live\":\"https://noes-246.web.app\",\"source\":\"https://github.com/warren488/noez\"},\"tags\":[\"personal\",\"frontend\",\"mobile\",\"realtime\",\"game\"],\"home\":\"featured\"},{\"id\":\"proj-reo-bridge\",\"title\":\"Reo Bridge\",\"tagline\":\"Battery cameras for Frigate NVR\",\"description\":\"Frigate expects always-on RTSP streams. Battery cameras sleep and only upload short motion clips over FTP. This bridge watches for clips and plays them through one persistent RTSP stream, filling the gaps with idle frames so Frigate never disconnects. Python, FFmpeg and MediaMTX in a container, with CI and a small web UI for tuning.\",\"tech\":[\"Python\",\"FFmpeg\",\"MediaMTX\",\"Docker\",\"GitHub Actions\"],\"year\":2026,\"status\":\"open-source\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/reolink-battery-to-frigate\"},\"tags\":[\"homelab\",\"video\",\"open-source\"],\"home\":\"featured\"},{\"id\":\"proj-project-me\",\"title\":\"This site\",\"tagline\":\"A CV that publishes itself\",\"description\":\"The CV on this site is built from a library of reusable entries and named variants, each picking sections, bullets and page breaks. A publish step resolves a variant to JSON, the same data feeds the timeline page, and a dev-only dashboard edits it all. Print styles cut it into A4 sheets, with a plain single-column variant for applicant tracking systems.\",\"tech\":[\"Vue 3\",\"TypeScript\",\"Firebase Hosting\"],\"year\":2026,\"status\":\"live\",\"links\":{\"live\":\"https://warren.scantlebury.io\",\"source\":\"https://github.com/warren488/project-me\"},\"tags\":[\"meta\"],\"home\":\"more\"},{\"id\":\"proj-bright-sparks\",\"title\":\"Bright Sparks Tutoring\",\"tagline\":\"Website and enrolment platform for a tutoring agency\",\"description\":\"Client work through my consultancy: the public site plus a multi-step enrolment form, role-based admin dashboard and email notifications. Next.js and Firebase, with Cloud Functions, Cypress end-to-end tests, GitHub Actions deploys to Firebase App Hosting and a daily backup plan.\",\"tech\":[\"Next.js\",\"React\",\"Firebase\",\"Cloud Functions\",\"Cypress\",\"GitHub Actions\"],\"year\":2025,\"status\":\"client\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/studio-creation\"},\"tags\":[\"client\"],\"home\":\"more\"},{\"id\":\"proj-fitnese\",\"title\":\"Fitnese\",\"tagline\":\"Workout tracking that understands injuries and rehab\",\"description\":\"An offline-first fitness PWA where exercises inherit from parents, target muscles hierarchically, and carry injury risk and rehabilitation metadata, so training can follow what your body actually needs. React 19 and Supabase, wrapped with Capacitor for Android.\",\"tech\":[\"React\",\"TypeScript\",\"Vite\",\"Supabase\",\"PostgreSQL\",\"Capacitor\",\"Workbox\"],\"year\":2025,\"status\":\"live\",\"links\":{\"live\":\"https://fitenese-2.web.app\",\"source\":\"https://github.com/warren488/fitnese-2\"},\"tags\":[\"pwa\",\"offline-first\",\"health\"],\"home\":\"featured\"},{\"id\":\"proj-comment-extractor\",\"title\":\"Comment Extractor\",\"tagline\":\"A VS Code extension for keeping long comments out of the code\",\"description\":\"Point a short reference in the code at a longer explanation stored in another file, and read it in place from the editor.\",\"tech\":[\"TypeScript\",\"VS Code API\"],\"year\":2023,\"status\":\"in-progress\",\"links\":{\"live\":null,\"source\":\"https://github.com/warren488/comment-extractor\"},\"tags\":[\"tooling\"],\"home\":\"more\"},{\"id\":\"proj-chat-pwa\",\"title\":\"Web Chat\",\"tagline\":\"A chat PWA built to see how far the web could go\",\"description\":\"Offline support with a service worker and IndexedDB, push notifications, voice notes, image sharing straight from the OS share sheet, friend requests, read receipts and typing indicators, and watching YouTube together with synced playback. Vue 2 on the front, Socket.IO and MongoDB behind it.\",\"tech\":[\"Vue\",\"Socket.IO\",\"MongoDB\",\"Firebase\",\"Service Workers\"],\"year\":2020,\"status\":\"live\",\"links\":{\"live\":\"https://webchat.scantlebury.io\",\"source\":\"https://github.com/warren488/web-chat-app\"},\"tags\":[\"personal\",\"fullstack\",\"pwa\",\"realtime\"],\"home\":\"featured\"}]}"
    }
  },
  "createTime": "2026-09-29T02:36:42.126383Z",
  "updateTime": "2026-09-30T05:42:35.429863Z"
}
