About the role
Work arrives at Plane from everywhere else first: Slack threads, GitHub pull requests, the Jira or Linear instance a company is leaving behind, and now from agents acting through OAuth apps that other developers wrote. You will own the Node and TypeScript services that carry all of it, which means the importers that move a company's history without losing a comment, the integrations that keep two systems agreeing about the same issue, and the queues and workers underneath both. You will also own the developer surface external builders use to write apps against Plane, so the quality of your API decisions shows up in other people's software. You will work with the Django engineers whose data model you write into, and with external developers who report their bugs in public GitHub issues rather than a support queue.
What you'll do
- Own the integrations that connect Plane to Slack, GitHub, and the other tools work arrives from, including what happens when the other side changes its API without telling anyone.
- Own the importers that migrate a customer's history out of Jira, Linear, and similar tools. An import that drops a comment or reassigns an issue is a bad first day for an entire company.
- Design the queue and worker architecture behind that work: retries, idempotency, backpressure, and the jobs that must never run twice.
- Build the OAuth and developer-facing surface that external builders write apps against, including the agent apps that act inside customer workspaces.
- Work daily with the Django engineers whose data model you write into, and answer external developers in public GitHub issues.
- Reconcile state after something failed halfway. Partial imports, expired tokens, and rate limits mean real time goes into repair paths rather than new features.
What you'll bring
- You have shipped Node.js and TypeScript to production. Point us to something you built, and tell us one decision in it you would make differently now.
- You have worked in Express, NestJS, or a comparable framework. Structure, middleware, and dependency wiring are familiar rather than new.
- You have built queue and worker systems. Retries, idempotency, and what happens when a job dies halfway are problems you have already solved once.
- You have integrated with third-party APIs you did not control. Rate limits, pagination, webhook delivery, and tokens that expire at the worst moment.
- You are comfortable in Postgres. You can read a query, add an index, and say why it helped.
Nice to haves
- You have contributed to Plane, run it self-hosted, or maintained another open project people rely on.
- You have built an importer or migration tool where losing data was not an acceptable outcome.
- You have worked on the provider side of OAuth, or on a developer platform other people built apps against.
- You have built systems where AI agents act on real data, and you have opinions about state, permissions, and audit trails.
Tech
- Backend: Node.js and TypeScript, Express or NestJS, Python/Django, Postgres, Redis
- Messaging: RabbitMQ
- Infrastructure: AWS, Kubernetes
- Observability: Datadog, Sentry
- Everyday tools: GitHub, Postman, pgAdmin, Plane