QA and automation
End to end testing with Cypress and Playwright, continuous integration with Jenkins, GitLab CI and GitHub Actions, and environments built with Docker and Nginx so that a pipeline runs against something close to production.
This site is part of the area rather than a showcase of it. Every push runs a type check, a build, a link checker, 86 Playwright tests across desktop and mobile, an axe accessibility pass and Lighthouse budgets before anything is deployed.
Number Converter

The first applet I made. Change from one number format to another. This was a fun way to learn about JavaScript event listeners and DOM manipulation. 2025 update: set up a CI pipeline, added tests and coverage with Cypress.
Read more...
Enigma VHDL

A gate-level Enigma cipher machine in VHDL. Automated testing uncovered two bugs that had been hidden for nine years, both now fixed and pinned down by 241 exhaustive checks.
Read more...