I was the founding engineer at Dynt, an SMB finance platform. Across three repos I authored 2,913 of 3,559 commits — about 82% of the codebase — and roughly 61,000 lines of TypeScript I predominantly wrote myself.
I built the open-banking sync layer that normalizes Swan, Yapily, GoCardless, and CSV imports into one model, with per-bank auto-sync fanned out via Promise.allSettled across 30+ connectable EU banks. On top of it: Stripe card issuing with Zod-validated KYC, a json-rules-engine automation system with a full audit trail, and a CrewAI categorizer-to-verifier crew (deployed May 2024) that reads transactions in batches of 15 per organization.
The front end is a 42,595-line React 18 app across 27 page modules — duplicate detection, @mention comments over socket.io rooms — wrapped as a Tauri desktop build.
The hard part
Out-of-order bank webhooks
Swan delivers webhooks with no ordering guarantee, so a Card.Updated could arrive before the Onboarding.Created it depends on, corrupting state. I built a typed EventQueue that serializes events per entity ID and replays them by a dependency-priority ranking (Onboarding.Created=0 up to Card.Updated=9), draining the next event whether the current one succeeds or fails so the queue never wedges. It turned a class of intermittent, impossible-to-reproduce data bugs into a deterministic pipeline.
Highlights
- Authored 2,913 of 3,559 commits (~82%) across three repos and ~61,000 lines of TypeScript I predominantly wrote.
- Built a multi-provider sync layer normalizing Swan, Yapily, GoCardless, and CSV into one model, with per-bank auto-sync via Promise.allSettled across 30+ EU banks.
- Solved out-of-order Swan webhooks with a typed EventQueue that serializes per entity ID and replays by dependency priority (Onboarding.Created=0 … Card.Updated=9).
- Deployed a CrewAI categorizer-to-verifier crew plus a merchant-inference agent (May 2024) with Pydantic-constrained JSON output.
- Shipped a 106-model Prisma schema with 53 enums behind 329 tRPC procedures.
Stack