Work across a TypeScript monorepo containing a Next.js 16 web app and API, an Expo mobile app, and a Cloudflare Worker
Maintain and extend a PostgreSQL + Prisma data model shared across applications
Develop and maintain webhook handlers for Plaid, Stripe, and Linq
Work on queued inbound-message batching and scheduled jobs
Implement and maintain security-sensitive paths involving encrypted bank tokens, chat content, per-user data scoping, and authentication across web and mobile
Build and maintain the AI layer with LLM tool-calling over users' financial data, long-term memory, and proactive insights
Review AI-generated code, including your own, with a skeptical eye
Requirements:
English-fluent
6+ years as a software engineer
3+ years shipping production TypeScript/Node backends
Shipped work at a company that moved money or handled bank or card data (Plaid, Stripe Treasury, Unit, Synapse-era BaaS, card issuing, lending, payroll)
Deep PostgreSQL: migrations safe to run on live data, indexes, transactions, query plans
Real experience with async systems: idempotency, retries, deduplicating webhooks, jobs that fail halfway
A security-first instinct around PII, encryption at rest, auth tokens and least privilege
Solo ownership of production at least once: on-call, reading error tracking, writing root-cause analyses
Daily use of AI coding tools (Claude Code, Cursor or similar), and clear views on where they go wrong
Written English good enough that a PR description or incident write-up needs no follow-up questions
It's a plus: Plaid in production: webhooks, item re-authentication, transaction sync cursors
It's a plus: LLMs in production: tool-calling, prompt evaluation, cost and latency control
It's a plus: Next.js App Router and React Server Components
It's a plus: SMS or messaging compliance (opt-outs, TCPA), or Stripe subscription billing