Captions and transcription
Closed captions and a speaker-attributed transcript for uploaded audio and video, built on the browser's own caption support.
hey, come on in!
Software engineer who builds accessible React and TypeScript interfaces, and the C#/.NET services behind them.
Interfaces I've built and the principles behind them, from accessibility features to component architecture.
All projectsClosed captions and a speaker-attributed transcript for uploaded audio and video, built on the browser's own caption support.
Read Word, spreadsheet, presentation and PDF files in the browser without downloading them, in an accessible viewer built on pdf.js.

A static Astro site that works without JavaScript, reads in order without CSS and behaves the same in every browser engine, with tests that hold it to that.
I'm Naomi. I like software that feels calm and works hard.
I've spent seven years with one company, growing from apprentice to Software Engineer II. I work across the stack, but I'm happiest building React and TypeScript interfaces that everyone can use, whatever their device, settings or assistive technology.
Seven years at one company, and a first-class degree apprenticeship along the way.
Full CVPebblePad
Delivered closed captions and transcription for uploaded audio and video, and resolved 100+ WCAG 2.2 issues in a dedicated accessibility team.
PebblePad
Built the front end of self-service settings, and reusable design system components with UX designers.
University of Wolverhampton · First Class Honours
Degree apprenticeship, alongside full-time delivery.
PebblePad
Built in-product messaging as React components inside an older framework, and an in-browser document viewer on pdf.js.
What I build with, from the interface down.
Also: system design, REST APIs, NUnit and code review.
Styling the real input with appearance: none, and making sure it doesn't vanish when Windows forced colours kicks in.
What the GOV.UK Design System taught me about radios that show an extra question, and how to build them so nobody misses what appeared.
prefers-contrast, forced colours and a manual toggle: three different things that all get called 'high contrast'.