QA program build-out — hospitality booking platform
Stood up the quality function for a guest-facing booking product that had none. Designed the issue-tracking structure from scratch — severity, verification state, product area, device, reproduction steps — and ran continuous testing across the full product surface for several months.
What changed. Bug reporting stopped living in scattered messages and screenshots. Everything landed in one tracker with a defined triage path, so the team could finally see what was broken, how badly, and who owned it. The highest-severity items got closed rather than quietly forgotten.
Public site technical and performance audit
Audited a client's public web experience across performance, accessibility, SEO, mobile, routing and trust, using technical analysis alongside automated browser recording.
What changed. A vague, long-running complaint that "the site feels slow" became a prioritised architectural case: a first-load payload heavy enough to leave mobile visitors staring at a blank screen, a rendering approach that produced no accessible page structure — invisible to both search crawlers and screen readers — and internal identifiers exposed to anyone who opened developer tools. Each finding got a named fix, sequenced from immediate to roadmap and backed by visual evidence.
End-to-end UX audit — ten core journeys
Audited every core user journey as a cold, impatient first-time visitor — landing, sign-up, login, discovery, booking, checkout, responsiveness, error states, navigation and trust signals — inspecting stored client-side state rather than trusting the interface at face value.
What changed. I found a conversion-blocking defect nobody had reported: an invalid filter could be written to persistent storage and strand users on a permanent zero-results screen that survived refreshes, with no discoverable way back. It looked like a service outage, not a filter error. I also caught a staging analytics identifier running in production, which meant the team's engagement data had been attributed to a placeholder user and was unsafe to build product decisions on.
Mobile device-lab testing sweep
Ran exploratory testing on current-generation iOS hardware through a cloud device lab against a staged build — authentication, filters, dark mode, detail pages and the booking gate — with a regression pass over previously reported defects, under strict constraints: no real transactions, no personal payment methods, no credentials in test records.
What changed. Almost every defect I filed was a touch-target or layering conflict invisible on desktop: controls registering on the wrong element, one control triggering another, a fixed footer swallowing scroll gestures. Real-device testing stopped being optional. I also isolated one intermittent bug to a specific page type by testing a second flow, so it reached engineering as a reproducible defect instead of "sometimes happens".
Automated QA reporting system
Standardised status reporting into four repeatable, branded outputs — a full triage, a change summary, a short-cycle digest, and a critical-items-only view — generated directly from the live tracker into formatted documents with severity indicators and per-item summary and outcome cards.
What changed. Reporting went from a manual write-up every cycle to a single command. Stakeholders now read the same severity-by-status picture on a predictable cadence, which made progress arguable from evidence instead of impression.