Senior SDET · Test Infrastructure & AI Tooling · Phoenix, AZ

Seve Zavala

Tests you can
actually trust.

I build test infrastructure: E2E and performance frameworks, CI that only runs what a change can touch, and Claude agents that do the triage, with a person on every decision.

Seve Zavala, Senior SDET

01 / Trust

9+Years in test automation
50% less
CI time at Qualia
Claude Code · Agent SDK
Playwright MCP
6 open-source
QA tools
02

A little about me

Most teams have plenty of tests and not much trust in them.

Someone re-runs a red build. Someone mutes a spec "temporarily". Eighteen months later nobody can say whether the behaviour it covered still works. You end up paying for a test suite and getting a slot machine.

So most of what I build answers one question in different places: what should we trust, and how do we know? Lately that includes the agents: what an AI should be allowed to decide on its own, and how we'd know it got it right.

My professional journey
03

Expertise

Quality, from the framework up.

01

Test Automation

Cypress · Playwright · Selenium · Cucumber / BDD · Jest · TypeScript · JavaScript · Python · Go

02

API & Performance

K6 load, stress, spike and soak profiles · Postman · REST and GraphQL suites · Grafana · Prometheus

03

CI/CD & Infrastructure

GitHub Actions · Jenkins · Docker · Kubernetes · AWS · Intelligent test selection · Flakiness triage

04

AI & Agents

Claude Code plugins · Claude Agent SDK · Playwright MCP · Anthropic API · Self-healing selectors · AI flaky-test triage

04

QA Lab

This portfolio tests itself.

A real Playwright suite runs against this page in CI on every push. The numbers below come from the last run, not from a text editor. The suite, like the site, was written in a Claude Code session and reviewed by me before it shipped.

Playwright E2E automation

Quality in action.

Browse the suite behind this page: smoke checks, navigation, links, this very lab, responsive layout and accessibility.

Tests
Browsers
Passing
Playwright runner
› Waiting for replay...
The last CI run will replay here, test by test.
Press the button to watch it.
Replays the recorded results of the real suite
Full regression suite View Playwright suite on GitHub
05

AI in the loop

AI drafts. A human decides.

Claude Code plugins that run the QA loop end to end, an agent that heals drifted selectors, and a benchmark that checks whether more agents beat one. Every one of them keeps a person on the decision and a record of who decided what.

Claude Code plugin

claude-qa-tms

Skills, not prompts. Explore a running app for bugs, file the cases in a test management system, verify each one step by step in a real browser, then generate Playwright specs that trace back to the case. The same loop is packaged as the qa-tms plugin you can install today.

Claude Code · Playwright MCP · Qase · Traceable specs
Claude-powered agent

self-healing-e2e

A Playwright framework where a Claude agent repairs one drifted selector, re-runs the spec to prove it, and opens a GitHub issue for anything it shouldn't touch. Known bugs are tracked state, so CI stays green while a bug exists and turns red the moment someone fixes it.

Anthropic SDK · Findings reporter · Dry-run by default
Claude Agent SDK

claude-agent-swarm

Runs the same task with one Claude agent and then a swarm of them: parallel finders with different lenses, a skeptic per finding, a panel plus a judge. Deterministic scoring and adversarial verification decide whether the extra agents earned their keep. Mostly, they don't.

Claude Agent SDK · Subagents · Benchmarks

House rules

What every agent I ship has to follow.

Nothing goes out on the agent's say-so. A person approves, the log records who approved it, and the agent's reasoning is right there to argue with.

  1. 01

    It can change one thing.

    The self-healing agent edits a selector registry and nothing else. Not assertions, not test logic. A narrow blast radius is what makes autonomy safe to grant.

  2. 02

    It proves it worked.

    A fix is kept only if the re-run passes. No key, no cost, no change: dry-run is the default, so the loop is demonstrable before anyone trusts it.

  3. 03

    It escalates what it shouldn't touch.

    Timing failures and assertion failures go to a human as issues, because a drifted selector can be a real regression in disguise. At Qualia, a P0 gate keeps deploy-blocking tests out of quarantine no matter what the classifier says.

In production at Qualia

AI flaky-test analyzer

Five thousand lines that read CI logs, classify six flakiness patterns, write the debug report and propose the fix, driven from the Claude Code CLI. Paired with the TestRail-to-Cypress plugin, which walks the live app through Playwright MCP to capture real selectors before it generates a single test.

Claude Code CLI · Cypress · TestRail · Internal
Beyond QA

Adjuster Copilot

Ask a three-hundred-page workers' comp claim file a question instead of reading it. Every answer cites the document and page it came from. The core is a pure Python library with the Anthropic API behind a single seam, so the web layer can be replaced without touching the reasoning.

Anthropic API · Retrieval with citations · React · FastAPI
Beyond QA

Artificer

Deal intake for a net-lease brokerage. Drop in an offering memo or a lease and it extracts twenty-four structured fields, each with a confidence grade and the verbatim passage it came from. Nothing reaches Salesforce until a person clicks approve, and the assistant that can read everything can change nothing. That's structural, not a rule it follows.

Anthropic API · Source-cited extraction · Salesforce · Human approval
06

What I bring to QA

Three opinions that show up in everything I build.

01

Trust

A flaky test is a trust problem, not a testing problem. Retries that hide a real defect are worse than a red build, so quarantine is a loan with interest: granted on evidence, repaid after clean runs, escalated when it expires.

02

Explainability

If a tool can't explain a decision, it shouldn't get to make it. Every narrowing, every quarantine, every score lands somewhere a human can argue with it. An automated decision you can't interrogate is an outage nobody filed.

03

Evidence

Measure it or don't claim it. A result you can't reproduce is worth less than an honest "we don't know yet", so the benchmarks I publish lead with the flaws the first run found.

07

Experience

Nine years of making green builds mean something.

  1. 2025 — Now

    Qualia

    Senior SDET 50% less CI time

    Primary developer of Cyclops, a Cypress E2E framework covering six services with 214 tests, and of Cerebro, a K6 performance framework that pulls its scenarios straight out of those E2E tests. Built the intelligent test selection that cut CI execution time in half and folded ten GitHub Actions workflows into one pipeline.

    Wrote the AI-powered flaky-test analyzer that diagnoses root causes from CI logs, the Cyclops-Flaky-Fixer plugin with a P0 gate so deploy-blocking tests can never be quarantined by accident, and the TestRail-to-Cypress plugin that walks the live app through Playwright MCP to capture real selectors before generating tests.

  2. 2019 — 2025

    U.S. Bank · via the Salucro HealthCare acquisition

    Software Developer in Test Framework from scratch

    Built the testing framework for a healthcare payments platform from nothing: regression suites across four platforms in Cypress and JavaScript, a hybrid of page objects and app actions that served both legacy and modern stacks, Cucumber BDD, and a Playwright framework for what came next. Stood up CI/CD on Jenkins, Docker and AWS, cut QA cycle time by 20 percent, and mentored the junior automation engineers.

  3. 2016 — 2019

    Mobivity Holdings

    Quality Assurance Engineer 5 products

    Manual and automated testing across five products with Selenium and Postman. Wrote the procedure manuals, ran the training sessions, and took an active role in sprint planning.

08

Selected work

Tools that answer: what should we trust?

Open-source, built on GitHub Actions and the Claude Agent SDK. They compose in this order: produce the specs, pick which to run, decide which to trust, then check whether any of it was worth the money.

09

The other half

Tools for tabletop games.

Same job with the sign flipped: there, randomness is the feature. Keep state consistent, make it reproducible, don't lose the thread. The dice are supposed to be random. The world isn't.

Personal project · Campaign tooling

LoreBrain

An LLM extracts NPCs, factions, locations and events out of session notes into a queryable world state, so a campaign stops living in six months of increasingly panicked scrawl. Pluggable model: Claude, OpenAI or Bedrock.

NestJS · Next.js · Postgres + pgvector · Pluggable LLM
Personal project · D&D 5e

The Peculiar Persona Pot

A web-based character generator that brews playable D&D 5e characters: every core race and class, subclass selection, and full spell management for casters.

Web app · Character generation · Spell management
10

My QA approach

Quality is a pipeline.

Each step hands evidence to the next. None of them gets to hide how it decided.

  1. 01

    Produce

    An agent explores the product, files the cases and generates specs that trace back to them. A person reviews every one.

  2. 02

    Select

    Run only what a change can affect. When that can't be justified, run everything.

  3. 03

    Trust

    Score flakiness on evidence, let an agent classify the pattern, and quarantine with an expiry date. Never forever.

  4. 04

    Measure

    Check whether the extra tooling, or the extra agents, earned their keep.

  5. 05

    Explain

    Every automated decision lands somewhere a human can argue with it.

Let's connect

Let's build tests worth trusting.

Interested in test infrastructure, automation, or want to argue about flaky tests? I'd enjoy that. Résumé available on request.

A flaky test is a trust problem,
not a testing problem.

Seve Zavala · Senior SDET · Test Infrastructure