Job Title: SDET / UI Automation Architect
Location: New York City, NY
Type of hire: Contract
Job Description :
Role Overview
We build an in-house trading platform covering order management, execution, and data analysis. The front end is a set of TypeScript/React apps running in a desktop container and streaming real-time data.
We're hiring a hands-on SDET to own UI test automation: extend our Playwright framework, make streaming, multi-window workflows testable, and add quality gates to CI, including front-end performance. You'll co-architect and co-own a unified testing framework with our backend SDET. It covers UI, API, messaging, data and performance tests in one place.
Responsibilities
- Co-architect and co-own, with our backend SDET, a unified testing framework that covers every area we test:
Shared foundations: fixtures, test data, configuration, environments and reporting are shared across UI, API, Kafka, database and performance suites.
Cross-layer scenarios: one scenario can cross layers. For example, a test places an order in the UI, then checks the resulting event and the database record.
One quality view: results from every suite feed a single view of release quality.
- Design, build and maintain end-to-end and component tests with Playwright and TypeScript for trading and analytics workflows.
- Extend our shared test toolkit: page objects, fixtures, and mocks of desktop-container APIs.
- Build front-end harnesses for real-time data: mocked WebSocket and REST responses, controlled test data, and deterministic replay of streaming updates.
- Cover UI failure modes: disconnects and reconnects, expired sessions, permission failures, bursty feeds, and stale data.
- Own front-end performance testing:
Startup and responsiveness: measure app startup and time-to-first-data, and check that the UI stays responsive under high update rates.
Grid behaviour at scale: measure render and scroll performance of grids with tens of thousands of rows.
Container resources: track memory growth and leaks in long-running desktop sessions, and CPU cost per window.
Regression gates: turn the results into budgets that fail CI on a regression.
- Build and maintain isolated, on-demand test environments on Linux and AWS:
Lifecycle: environments are created per branch or per run, start with seeded data and known state, and are torn down automatically.
Isolation: test runs don't interfere with each other or with shared environments.
- Validate front-end/back-end contracts and payload schemas.
- Run UI suites in CI/CD: sharded parallel runs, scheduled regressions, and reporting on pull requests.
- Make failures diagnosable: Playwright traces, screenshots and video, and correlation with telemetry.
- Work with UI engineers, business analysts and traders to automate critical workflows and define QA acceptance criteria.
- Use AI-assisted tools where they help with writing, maintaining and triaging tests.
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.
- Highly preferred - Trading or buy-side experience: OMS/EMS, algos, positions, allocations, or risk.
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.