About the Role
Plane ships to our cloud, to customers' clusters, and to machines that never touch the internet, which means a release has to be right before it leaves, because we often cannot see what happens after it does. You will own the automated test suite that gives us that confidence: what it covers, what runs on every pull request, and whether engineers believe it when it goes red. The interesting problems here are the ones that resist automation, including two clients editing the same document, a browser that went offline mid-edit and came back, a desktop app, and agents acting inside a workspace where the correct outcome is a range rather than a value. You will work with product and engineers in San Francisco and Hyderabad, and with community contributors whose pull requests arrive in public with varying amounts of test coverage.
What you'll do
- Own the automated test suite for Plane's web and desktop clients, from framework design through what runs on every pull request to what runs before a release.
- Build coverage for the parts that resist it: concurrent editing, offline and recovery, and agent actions where the correct result is a range rather than a single value.
- Decide what gets tested and what does not. Coverage is a budget, and you spend it where a failure would reach a customer.
- Keep the suite fast and trustworthy. A flaky test that engineers learn to ignore is worse than no test at all, and removing that habit is part of the job.
- Test what customers actually run: Cloud, self-hosted, and versions months behind ours, across browsers and hardware we do not control.
- Work daily with engineers and product across San Francisco and Hyderabad, and review the test coverage arriving with community pull requests.
- Triage failures nobody else wants to own, separating a real defect from a script problem from an environment problem, and doing it again the next morning.
What you'll bring
- You have built an automation framework, not only written tests inside one. Structure, fixtures, and test data are decisions you have made and then lived with.
- You are fluent in Playwright or Cypress, and in TypeScript or JavaScript. Enough to debug a failure from a trace rather than by rerunning it.
- You have made a flaky suite trustworthy again. Tell us what was flaking, what you changed, and how you knew it worked.
- You test APIs as well as interfaces. REST endpoints, authentication, and getting an application into the state a test needs before it starts.
- You have run suites in CI and cared how long they take. GitHub Actions or comparable, with a view on what belongs per commit and what belongs nightly.
Nice to haves
- You have contributed to Plane, run it self-hosted, or maintained another open project people rely on.
- You have tested real-time collaborative or offline-first applications, and you know why they break testing assumptions.
- You have tested systems where AI agents act on real data, and you have thought about asserting on non-deterministic behavior.
- You have worked with cross-browser, visual regression, or Electron desktop testing (BrowserStack, Applitools, or comparable).
Tech
- Testing: Playwright, TypeScript, GitHub Actions