Senior Automation QA Engineer (SDET)
Summary
Via DeviQA, a Senior SDET for a US athletics-management platform used by thousands of schools: ~70% building LLM/agent eval harnesses, golden datasets, and CI quality gates plus Playwright/Maestro E2E suites, ~30% shipping product features in TypeScript, Node, React, and React Native. Fully remote with US Central Time overlap.
We are looking for a senior automation QA engineer to own automated testing across our web and mobile products, and to raise the engineering quality bar across the team.
The split is roughly 70 / 30:
70% test automation - Playwright (web) and Maestro (mobile) suites, API and integration tests, test data and environments, CI quality gates, turning production failures into permanent checks.
30% product engineering - you write real code in the same repos the team ships from: unit and integration tests next to the developers, internal tooling, and small to medium features or bug fixes.
This is not a manual QA role, and not script-writing in isolation. We are looking for an engineer who happens to specialise in quality: someone who can pick up a feature ticket, implement it with tests, and pass code review.
Our stack
Languages: TypeScript, JavaScript
Backend: Node.js, Express
Frontend: React, React Native
Databases: PostgreSQL, MongoDB
Infrastructure: AWS
Testing: Playwright, Maestro, Jest / Vitest
CI/CD: GitHub Actions
Test automation and quality engineering (~70%)
Own the Playwright and Maestro end-to-end suites: fast, stable, parallelised, and honest about why a test failed.
Design the automation strategy across the pyramid instead of pushing everything to the UI layer.
Build API and integration coverage for Node.js / Express services, including auth, error paths, and data consistency.
Own test data and environments: fixtures, factories, seeding, resets, and isolation between runs.
Maintain quality gates in GitHub Actions, with useful artifacts: traces, videos, screenshots, logs.
Treat flakiness as a first-class task: find root causes, fix waits and race conditions, track suite reliability as a metric rather than adding retries.
Build reusable automation infrastructure: abstractions, custom fixtures, mocks, service virtualisation, shared helpers.
Turn every escaped bug or production incident into a regression test.
Report quality clearly: what is covered, what is failing and why, and what it means for a release decision.
Join design and refinement early, so features are testable before they are built.
Run targeted exploratory testing where automation is not yet the right tool.
Product engineering and feature work (~30%)
Write unit and integration tests for production code in Jest or Vitest - real assertions and edge cases, not coverage padding.
Implement small to medium features and bug fixes in Node.js, React, or React Native, to the same review standards as the rest of the team.
Refactor for testability: break up tightly coupled code and introduce seams without changing behaviour.
Review other engineers' code with specific, actionable feedback on test quality, error handling, and failure modes.
Build internal tooling that shortens the team's feedback loop: scripts, CLI utilities, dashboards, mock services.
Coach engineers on testing, error handling, retries, idempotency, and failure isolation, so quality is not owned by one person.
Help troubleshoot production issues: read logs and traces, reproduce, drive to resolution. Occasional incidents outside working hours.
What we're looking for
4+ years in test automation, SDET, or software engineering, owning automated testing for a production web or mobile product.
Strong JavaScript and TypeScript: typed, maintainable code, and a solid grasp of async behaviour, promises, and timing issues.
Software engineering fundamentals: Git workflows, code review, debugging, design patterns, SOLID, and how HTTP, REST, auth, and async systems actually work.
Unit and integration testing, not only end-to-end: mocking, test doubles, fixtures and factories, parameterised tests, and knowing when a unit test is the wrong tool.
Owning a Playwright, Cypress, or equivalent suite at scale, including parallel execution and flakiness reduction.
REST API testing: tooling, contract or schema validation, negative and edge cases.
Reading and contributing to a production Node.js and React codebase: navigate unfamiliar code, trace a bug to its source, ship a fix with tests.
Working SQL and PostgreSQL: query and verify data, understand schemas and migrations, use the database to set up and assert test state.
Building CI/CD pipelines in GitHub Actions or equivalent: caching, parallel jobs, artifacts, and keeping pipeline time under control.
Debugging across frontend, backend, database, and infrastructure.
Clear async written communication: bug reports and test results people can act on without a meeting.
AI-assisted engineering (required)
We build AI features and use AI tooling daily. You do not need to be an ML engineer, but you should already work this way:
Daily use of frontier models and agentic coding tools (Claude Code, Codex, Cursor) for tests, fixtures, refactoring, and code investigation.
A repeatable way of giving agents context - instruction files, tool definitions, MCP servers, subagent roles - and the judgement to review output instead of merging it blindly.
Understanding that AI-driven features cannot be validated by conventional assertions alone, and willingness to grow into evaluation work: golden datasets, scoring, regression gates.
A practical sense of token spend and wall-clock time per unit of delivered work.