Senior QA engineer. I design end-to-end test suites and the test infrastructure behind them, for web, mobile and APIs, in e-commerce, healthcare and SaaS.
A web app I built to be hard to test: 200+ cases such as realtime chat with reconnects, offline queues, time zones and DST, payments in frames and accessibility.
- The server exposes 72 documented test hooks for seeding data, injecting faults and controlling the clock.
- Each case is solved several ways in Playwright. Every approach is scored against bugs planted into the app, 10 runs per bug, so a test that only sometimes fails doesn't count as a catch.
- 12 worked solutions, 3 to 5 approaches each, with scores and trade-offs. In 5 of 11 scored cases no single approach catches every planted bug.
- An AI-agent benchmark on the same cases: what coding agents test, miss and get wrong.
intercom-support-assistant: a Chrome extension in daily use by a multi-brand support team. It signs each reply for the right brand in the customer's language, blocks closing a conversation whose escalation is still open, and alerts on urgent inboxes.
- 2,200+ unit and integration tests in about 15 seconds; each new test must first fail against a deliberate bug
- a leak scanner, itself tested against planted values, keeps real customer data out of the public code
dotfiles: my macOS and Arch Linux setup, from one installer that is safe to re-run. It contains:
- a local LLM server: a 27B model on one consumer GPU, behind a proxy that keeps two large sessions from crashing it (58 tests)
- hourly git sync across machines
- a monitor that reports failed background services
Also: lcw-dashboard, a local crypto dashboard in one Go binary, and agents-usage-dashboard, AI coding assistant usage limits in one view (a Go rewrite of AgentsUsageDashboard).
Tokens for Good: research on nonprofits' measured impact, run on spare AI capacity. Gold contributor: 225 accepted contributions, 100% acceptance (as of 2026-10-30).
