Lead Test Engineer at VoCoVo — testability, test automation architecture and engineering feedback loops across cloud, edge and connected systems.
20+ years across connected hardware, cloud services, APIs and web platforms. I specialise in making complex systems testable — improving observability, controllability and reproducibility so teams find expensive failures early. Currently looking after testing across Linux edge controllers, backend services and React front ends supporting 8,000+ retail locations and 100,000+ users.
- 🔭 Currently: leading a Cypress → Playwright migration and Linux controller automation (Vitest + TypeScript)
- 🌱 Learning: Kubernetes, Docker orchestration for test environments, agentic architecture (Claude Certified Architect – Foundations, in progress)
- 🤝 Happy to collaborate on: test architecture, automation frameworks, CI/CD pipelines, open source
- 💬 Ask me about: testability, risk-based testing, Playwright, contract testing, automation strategy
- 📫 Reach me: any of the badges above
const richardForjoe = {
pronouns: "He | Him",
role: "Lead Test Engineer @ VoCoVo",
focus: ["Testability", "Automation architecture", "Engineering feedback loops"],
languages: ["TypeScript", "JavaScript", "Node.js", "Java", "Bash", "SQL"],
automation: ["Playwright", "Cypress", "Vitest", "Jest", "Supertest", "Selenium", "Rest-Assured"],
protocols: ["REST", "GraphQL", "WebSockets", "MQTT", "SIP", "SOAP"],
platforms: ["Docker", "Kubernetes", "Linux", "AWS", "Azure", "GitHub Actions", "GitLab CI", "Jenkins"],
observability: ["Datadog", "Pendo", "Gatling", "JMeter", "OWASP ZAP"],
practice: ["Risk-based testing", "Exploratory testing", "Contract testing", "Shift-left"],
};Languages & runtime
Testing & automation
Platforms & CI/CD
Protocols & data
| Repo | What it is |
|---|---|
| device-test-framework | On-device integration test framework — runs tests directly on edge hardware via self-hosted GitHub Actions runners and a privileged test container |
| contract-testing-lab | Hands-on lab for consumer-driven contract testing |
| aws-cdk-boilerplate | AWS Lambda & Step Functions boilerplate with CDK infrastructure for multi-environment deployment |
| ws-mock-server-cypress | Demo of a WebSocket mock server integrated with Cypress |
| post-to-slack | Automates posting test reports to Slack |
| ts-code-snippets | My TypeScript snippets |
Bugs and questions I've reported against the tools I use day to day:
- microsoft/playwright#33085 —
routeWebSocketdoes not handle full URLs (fixed) - cucumber/common#2152 — incorrect status reported for skipped / pending / failed steps (fixed)
- badeball/cypress-cucumber-preprocessor#1052 — same status-reporting issue, downstream
- lerna/lerna#3063 — versioning a package without bumping its dependencies
I write about test architecture, locator strategy and engineering practice on Medium:
- The Twenty Commands You Type Every Day (and Shouldn't)
- Stop Trying to Keep Up With AI Code Generation
- Stop Reporting Test Activity: Show the Business Impact of Testing Instead
- Stop Writing Brittle Tests: A Locator Strategy for Your Web Portal
- WebSocket Mock Server and Cypress Integration
- A Tester's Lessons from Clean Architecture by Robert C. Martin
Companies — VoCoVo · Sky · Infomentum · Kirona · Strikingly (Y Combinator) · Atos UK · TCL
Domains — Connected hardware & edge · OTT / TV apps · MuleSoft & Oracle Cloud integration · Billing & payments · Contact centre · ERP · Credit Account Information Sharing (CAIS) · Infrastructure & transitions
Industries — Central & local government · Telecoms · Utilities · Retail · Non-profit · Financial services · Media & broadcasting · B2B & B2C
Photography, design and games. I shoot street and portraits:




