Full-stack booking application built and tested solo in 5 days using AI-first engineering approach.
Next.js · TypeScript · Playwright · Vercel
Multi-step skip hire booking flow. Fully functional with 4 deterministic test postcode fixtures.
Next.js · Vercel · TypeScript Open Demo →Full monorepo: Next.js app, Playwright test suite, GitHub Actions CI/CD, all project documentation in /docs.
Public · MIT License View Repository →GitHub Actions: TypeScript quality gate + Playwright smoke tests on every PR. Full regression on merge.
Node 24 · Chromium · WebKit View Pipeline →REM Waste issued a QA Engineering Assessment requiring candidates to both build and comprehensively test a realistic booking platform — simultaneously acting as developer, QA engineer, and delivery manager.
The constraint: 5 days, solo delivery, zero infrastructure budget.
This project demonstrates that an experienced QA Architect can own the full engineering cycle — not just test what others build.
AI-First Engineering: Claude Code was used as the primary accelerator — not a replacement for judgment. Every AI-generated artefact was reviewed, verified, and often improved before commit.
24 AI-assisted tasks logged in DOC-008 (AI Engineering Log):
14 hours of estimated engineering time saved.
Complete engineering artefacts — from requirements to release. All authored before or during development, not retrospectively.
Every tool selected through scored evaluation matrices — see DOC-007 for full justification.
Separate standalone repo targeting the live REM Waste booking app on Vercel. Python-native Locust testing the complete booking flow under concurrent load — surfacing a race condition invisible to sequential E2E tests. Part of the Cross-Stack Performance Series.
Built-in Locust HTML report generated on every CI run. Booking flow smoke test (5 VU, 30s) and BS1 4DJ concurrency demonstration (10 VU, 30s) as separate test runs. Reports retained 30 days as GitHub Actions artifacts. FINDINGS.md documents the race condition discovery.
Locust 2.28+ · Python · GitHub Actions Artifacts (30 days) View CI Artifacts →Runs on push, PR, and weekly Monday schedule. Booking flow smoke: 5 VU, 1/s spawn rate, 30s. BS1 4DJ concurrency demo: 10 VU, 5/s spawn rate, 30s. mypy type checking and ruff linting in same CI job. Max 20 VU to respect Vercel free tier.
Four test postcodes, each exercising a different failure mode: SW1A 1AA (happy path), EC1A 1BB (empty state), M1 1AE (latency simulation +1500ms), BS1 4DJ (concurrency race condition). FINDINGS.md documents the architectural constraint discovered.
Python 3.12 · Standalone repo · rem-waste-qa-performance View Repository →The BS1 4DJ postcode uses a module-level counter for retry simulation. Under concurrent requests from multiple virtual users, the counter — application-wide state, not request-scoped — causes multiple users to receive 500 errors simultaneously. This race condition is completely invisible to Playwright’s sequential test execution and only surfaces under concurrent load. A QA finding about architectural scope, not a performance finding about capacity.