Qualifications
• 5+ years of UI test automation, including designing or significantly extending a framework.
• Strong TypeScript/JavaScript and Node.js skills, with substantial hands-on Playwright experience. Strong Cypress or Selenium experience plus willingness to move to Playwright is also fine.
• Working Python skills (pytest, Playwright for Python): test tooling, data setup, backend checks inside UI scenarios, and contributing to the shared framework.
• Experience testing React apps with complex data grids (AG Grid or similar), dynamic forms and heavy client-side state.
• Experience mocking network traffic in the browser (REST and WebSocket) and testing authentication flows.
• Front-end performance testing experience:
Profiling: Chrome DevTools Performance and Memory panels, and the Lighthouse and performance APIs.
Diagnosis: finding long tasks, layout thrashing and memory leaks.
Budgets: setting performance budgets and enforcing them in CI.
• CI/CD experience with Azure DevOps (preferred) or Jenkins/GitHub Actions, and Git.
• Experience building isolated test environments:
Linux: comfortable on the command line, with shell scripting, processes, networking and log troubleshooting.
Docker: Docker and Docker Compose.
AWS: EC2, ECS or EKS, S3, IAM, VPC and CloudWatch.
Infrastructure as code: Terraform, CloudFormation or CDK.
• Strong reliability habits: isolated tests, deterministic waits instead of sleeps, controlled retries, and triage of flaky tests.
• Experience with test reporting and traceability (Playwright reports, Allure, Azure Test Plans, TestRail).
• Clear communication and good documentation.
Nice to have
• Java exposure, enough to read service code and contribute to backend suites in the shared framework.
• Desktop container automation: Electron, OpenFin, or similar.
• Component testing (Vitest or Jest). Storybook visual or interaction testing.
• Accessibility and visual-regression testing.
• React Profiler and familiarity with React rendering performance (memoization, virtualization).
• OpenTelemetry or similar real-user-monitoring tools, and using production RUM data to pick performance test scenarios.