About the role
Responsibilities:
- Work with the AI Lead and own parts of the backend architecture. API design, data modelling, service boundaries, real-time sync, auth and multi-tenancy.
- Make the calls that everyone else's code lives inside.
- Build the real-time and multiplayer layer.
- WebSocket fanout, presence, conflict resolution, and document sync are the substrate that makes the canvas feel live for every user in a workspace.
- Design the data layer with judgment, not defaults.
- Pick the right store for each workload: relational, document, event log, blob, cache and own the schemas, migrations, and consistency model.
- Ship into our TypeScript monorepo. API, auth, database, and real-time services all live in one codebase.
- You'll work across all of them and set the patterns for how they fit together.
- Own auth, orgs, and permissions.
- Workspaces, sharing, roles, and audit the things that make us safe to use inside a company.
- Build AI-friendly backend primitives.
- Streaming endpoints, long-running agent calls, idempotency, cost attribution, and the AI features will call into your APIs, and you'll make sure they can.
- Set the technical bar for backend engineers.
- Code review, design review, and the patterns that the rest of the backend team learns from.
Requirements:
- 12+ years of software engineering experience, with significant time as a hands-on backend architect or senior backend engineer.
- This is a deeply hands-on role where you'll write the code, not just review it.
- Production TypeScript experience in large, complex codebases you've shipped non-trivial backend systems in TS, ideally in a monorepo, and have strong opinions on how to structure a TS backend at scale.
- Shipped a collaborative or real-time backend in production.
- WebSocket fanout, presence, document sync, conflict resolution (CRDT, OT, or equivalent), you've owned this in a live multi-user product.
- Strong database fundamentals. Schema design, indexing, query performance, transactions, migrations, consistency models.
- Comfortable making the call between relational, document, and event-sourced approaches based on the workload.
- Multi-tenancy and auth depth orgs, workspaces, RBAC, sharing semantics, audit.
- Comfortable with the infra surface Kubernetes, Terraform, CI/CD, enough to debug, contribute, and design with infra constraints in mind. You don't have to own it, but you can't be helpless around it.
- Architect-level judgment without manager scope. You're the technical anchor, not a people manager.
Nice to Have:
- Experience designing AI-aware backend APIs, streaming responses, long-running agent calls, token-bounded request/response shapes, idempotency for retried LLM ops, and cost attribution per tenant.
- CRDT or OT internals experience, Yjs, Automerge, ShareJS lineage, or having built your own.
- Background shipping canvas, design tool, IDE, or collaborative document backends.
- Experience with observability and reliability engineering at a serious level, SLOs, on-call, and debugging production at scale.