- ForPatients: accessible, user-centric Vue 3 interfaces connecting patients with clinical-trial and disease information.
- Roche Medically: complex responsive layouts in Vue 3 for a global portal serving healthcare professionals.
- Roche MedInfo: migrated the medical-information request system from Vue 2 to Vue 3 and optimised its architecture.
- Built oneDataLayer: one TypeScript analytics framework (page views, clicks, scroll depth, search, OneTrust consent) wired into AEM components via a single data attribute, with no per-component JS.
- Implemented comprehensive ARIA patterns, keyboard navigation and screen-reader support to meet healthcare-grade WCAG requirements.
Hi, I'm Hiten. I've spent fifteen years on the front end of the web.
Mostly on big, awkward platforms where the framework is the easy part and the real work is accessibility, performance, and keeping a large codebase from turning into a swamp. I've done that for Roche, Sony PlayStation, Snowflake and Virgin Media, usually leading the frontend side.
These days it's mostly TypeScript, with Vue and Lit at the centre of my recent work and React or Next.js when the job calls for it, plus a slightly nerdy enthusiasm for design systems, performance and accessibility. I'm based in Reading and take on freelance and contract work.
A bit more
I care about the parts of frontend most people skip: the keyboard order, the loading behaviour, the build that doesn't fall over at 5pm on a Friday.
My favourite work is on design systems: getting a team to the point where one YAML definition generates the types, the templates, the CMS dialogs and the markup, so nobody's hand-writing the same component five slightly different ways. On my current Snowflake job that's about forty components built that way.
I came up through Adobe Experience Manager (still Adobe-certified from 2015) and now work frontend-first, dropping into the backend (Sling Models, OSGi) when something genuinely needs it. Accessibility isn't a box I tick at the end; more often it's the thing that decides how I write the markup in the first place.
Web development in Reading
I'm in Reading, and happy to work with people nearby, or anywhere, remotely.
If you run a business in Reading, Berkshire or the Thames Valley and need a website or web app built properly, so it's quick to load, usable for everyone, and not held together with string, that's the sort of work I take on freelance. Same goes for teams that want a pair of senior frontend hands, or some design-system help, for a few months.
I'll do the whole thing: the build, the performance work, the accessibility, and the unglamorous bit at the end where it actually ships. Tell me what you're working on.
What I reach for
Day to day it's TypeScript everywhere, with Vue and Lit doing most of the heavy lifting in my recent work, and React and Next.js when a project calls for them. For styling I lean on modern CSS, design tokens and cascade layers, plus Tailwind where it fits (I reached for it prototyping AEM Edge Delivery). I build with Vite, document in Storybook, validate with Zod, and test with Web Test Runner and Playwright.
The rest is judgement more than tooling: component architecture, design systems, schema-first code generation, WCAG and ARIA done properly, Core Web Vitals, and the CI/CD to get all of it out the door without drama. A long history with Adobe Experience Manager, and more recently headless CMS work in Contentstack and Sanity.
I keep current, too. Lately that's the newer CSS platform features (container queries, the View
Transitions API, cascade layers and :has()), schema-driven design systems, and treating
AI as part of the daily workflow rather than a novelty. RadioShake was built that way. The platform
has moved a long way recently, and I have moved with it.
Current engagement
learn.snowflake.com
I'm rebuilding Snowflake's learning site as a modern AEM Cloud component system. The part I'm most pleased with: one YAML file per component generates the TypeScript types, the Lit templates, the AEM dialogs and the HTL. About forty components so far, instead of four hand-maintained copies of each.
Underneath it's Vite, Lit 3, Zod for runtime validation, cascade-layer design tokens, and progressive hydration so the page only does work when it has to. GitLab CI handles the versioning and ships straight to Adobe Cloud Manager, with Playwright, axe-core and coverage gating every release.
Where I've worked
- Built features for high-traffic brands including BBC Good Food, History Extra and Made for Mums.
- Worked across headless and traditional CMS implementations with React, Next.js, Node.js and modern ES7+ JavaScript.
- Shipped new features across multiple brand properties, improving UX and editorial workflow.
- Led the migration of the community forum UI from Lithium to AEM Communities and spearheaded a global site redesign.
- Delivered frontend for PlayStation's global web presence on AEM across frontend, backend and QA teams.
- Rebuilt the help & support section as an AngularJS single-page app, significantly improving navigation.
- Introduced Jasmine testing to the workflow; won the internal Collabathon with a React + Node.js prototype.
- Led a team of up to 7 developers (incl. 3 offshore) through the renewal and migration of the Virgin Mobile platform.
- Defined frontend technical strategy, mentored the team, and aligned UX/design decisions with technical feasibility.
- Drove migration of Care and Sales platforms into a unified AEM stack with component/template development in Sightly (HTL).
- Introduced Grunt and SASS into the Maven build, improving DX and deployment efficiency.
- Maintained the high-traffic Virgin Media customer portal (broadband, TV and phone account management).
- Implemented responsive design across the portal and companion apps for multi-device access.
- Delivered features with HTML5, CSS3, SASS, JavaScript, jQuery, AJAX and Velocity on Adobe CQ5.
- Built and maintained high-profile sports-media websites with large user bases under tight deadlines.
- Hand-coded HTML, CSS and JavaScript for clients including Toyota and Holiday Inn; built sites to W3C validation standards.
- Worked in HTML5, CSS3, JavaScript, jQuery, Freemarker, XSLT and XML; collaborated on sprint planning in Jira.
On the side
Pieces of work I keep coming back to: IronPulse, RadioShake, and a live AI demo at ask.hiten.dev. Read the case studies →
radioshake.media
A side project that got a bit out of hand: an internet-radio app for Android and Wear OS. 45,000+ stations, Android Auto, a sleep timer, and a daft feature where you shake the phone to jump to a random station. Kotlin and Jetpack Compose, shipped to Google Play through its own CI/CD pipeline. I built most of it with AI assistance, which is part of why I trust that way of working for client projects too.
ask.hiten.dev
A small live demo: a streaming chat over my CV, grounded in a hand-written facts file so it stays honest. Astro 5 in server mode on Node 22, vanilla TypeScript on the client parsing OpenAI-format SSE token by token, Llama 3.3 70B via Groq behind a server-side key. Source on my NAS, built and deployed by self-hosted Forgejo CI over a WireGuard tunnel to the Oracle ARM VM that fronts it via Traefik. Ask it how I built it.
Certification & education
Certifications
Contentstack Developer Certification · Contentstack, 2026
Sanity Certified Content Operator · Sanity, 2025
Adobe Certified Sites Developer · Adobe, 2015
Education
VB.NET & Java · Home Learning Direct, 2005 · Distinction in both
A-Levels · Biology (B), Psychology (B), Law (C)
9 GCSEs · incl. English Literature (B), Maths (B), Double Science (AA)