- AI voice agents β built Wavva's AI front office: Twilio telephony + LLM orchestration, AI scheduling, automated SMS/email follow-ups, per-tenant billing with Stripe.
- Test automation research β reverse-engineered Healenium's self-healing engine from OSS bytecode (heuristic LCS + Levenshtein scoring, exact weights) and built Mimic's 4-signal healing engine on top of that research.
- Full-stack SaaS β multi-tenant Next.js + PostgreSQL platform: role-based access, seat limits, trial/overage billing, i18n, Playwright regression suite (83 scenarios).
- Vision pipelines β Wavva Lens: SAM 3.1 segmentation wired into a photo β quote β booking workflow.
| Project | Stack | What it does |
|---|---|---|
| Wavva | Next.js Β· PostgreSQL Β· Stripe Β· Twilio | Flagship. AI front office for service businesses β AI call answering, smart scheduling, automated follow-ups, tiered SaaS billing. |
| Wavva Lens | Next.js Β· SAM 3.1 Β· Vercel | photo-to-quote-and-booking for cleaning businesses; vision segmentation + owner rule engine + booking flow. |
| Mimic | TypeScript Β· Playwright | Self-healing test recorder β record one manual QA pass, get a runnable Playwright spec with a 4-signal healing engine (heals β₯ 0.80, fails loudly below). |
| Echoes | Next.js Β· LLM API | Future-self simulation β state a decision, hold real in-character chats with your +5/+15/+30-year selves, get a closing synthesis. |
Recent pull requests to tools I use daily β open for maintainer review:
| PR | Project | Fix |
|---|---|---|
| #3487 | Selenide | Stop creating downloads folder eagerly at startup |
| #1625 | h3 | Return 412 (not 304) for If-None-Match on non-GET/HEAD |
| #526 | eslint-plugin-playwright | Don't autofix prefer-to-have-count when the variable is read elsewhere |
| #525 | eslint-plugin-playwright | Flag interpolated template-literal locators again |
| #320 | Healenium | Send a body with initReport; skip TestNG frames |
| #5782 | CodeceptJS | Map TS step line/column back to .ts source via inline sourcemaps |
| #16330 | WebdriverIO | Exact-match id/attr in text selectors (fix adopted by maintainer) |
| #319 | Healenium | Restore wait flags on nested SelfHealingDriverWait exits |


