About the role
We're hiring a Backend Architect to own the backend that powers a collaborative, real-time canvas used by design teams. You'll architect the API surface, data layer, and real-time sync that everything else in the product builds on, including every AI feature. This is a deeply hands-on architect role: you'll design the system and write the code, not just draw boxes.
Responsibilities:
- Work with the AI Lead and own parts of the backend architecture, API design, data modeling, 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 syncthe substrate that makes the canvas feel live for every user in a workspace.
- Design the data layer with judgment, not defaultsPick the right store for each workload: relational, document, event log, blob, and 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 audits are the things that make us safe to use inside a company.
- Build AI-friendly backend primitives Streaming endpoints, long-running agent calls, idempotency, and cost attribution: 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 the rest of the backend team learns from.
Requirements:
- Our backend is TypeScript end-to-end, multi-tenant, and serves a live multi-user canvas. You'll set the patterns the rest of the team builds against.
- 12+ years software engineering experience, with significant time as a hands-on backend architect or senior backend engineer This is a deeply hands-on role; 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, and 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, and audit.
- Comfortable with the infra surface Kubernetes, Terraform, and 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, debugging production at scale.