Dimitri Kurbatov Hiring
All work

Case study · EMD

Multi-tenant event operations

Event coordination lived in email, HubSpot threads and Slack. I architected and built EMD, one place where clients buy and schedule events and staff run them.

Client
The Go Game
Role
Architect, lead & owner
Platform
Web, multi-tenant
Hosting
Google Cloud

100sevents a month at peak

Newrevenue stream from credits & subscriptions

1system replacing email, HubSpot & Slack threads

The problem

Clients, sales and event staff coordinated every event by hand across email, HubSpot and Slack. It didn't scale, and it left no room to sell anything new.

What I built

  • For clients: schedule in-person, virtual and hybrid events, buy and manage game credits, customize branding, trivia and awards, and manage organizations, users and permissions.
  • For staff: assign hosts with approvals and availability, control live event state, manage pricing, carts, orders and venues, and send notifications by email, SMS and Slack.

Engineering highlights

  • A NestJS monorepo: REST and GraphQL API, background worker, HubSpot webhook service, WebSocket service and an admin CLI.
  • Built for failure. Every outside call runs on a queue with automatic retries, and handlers are idempotent, so a repeated event never means a duplicate charge.
  • Payments: Stripe sales, prepaid credits that can expire or be allocated later, and subscriptions.
  • PostgreSQL with PostGIS for location queries, with TypeORM migrations.

Outcome

EMD supported hundreds of events a month at peak with lean operations, and opened a new revenue stream from credits and subscriptions.

Screens

EMD in use

Building something like this?

Ask my AI (opens in a new tab)