←︎ Back to selected work Combat sports platform
Fightbook
A multi-role combat sports platform for fighters, managers, promoters, service providers, fans and admins, taken from the first commit to production.
ArchitectureBackendReal-timeRecommendationsIdentity

Fightbook
26K+real fighter profiles imported
6-7 mofrom first commit to launch
6core platform roles
01 / ContextWhat I walked into
Fightbook centralizes fighter profiles, fight opportunities, events, managers, promoters, service providers and fans. The backend had to support multiple combat sports, flexible rules, multi-role users and a large imported fighter dataset without turning routine queries into bottlenecks.
02 / Engineering problemWhat had to be solved
Start with a schema that could grow with the product, support different sports, weight classes and fight formats, let one user operate across multiple roles, and still keep list/search workflows predictable as real data arrived.
My contribution
THE WORK I OWNED
01Designed the backend schema from the first commit, including flexible sports, weight classes, fight formats and many-to-many fighter/manager relationships.
02Imported roughly 26,000 purchased real fighter profiles and built a one-click profile-claim flow backed by Veriff identity verification.
03Implemented role-based authorization and in-session role switching for fans, fighters, managers, promoters, service providers and admins.
04Built fight posting, challenge workflows and recommendation logic using sport, weight class, gender, record, location and availability.
05Built one-to-one and group chat with Pusher presence, used Knock for product/chat notifications, Firebase for authentication and Loops for email.
06Used BullMQ with Redis for asynchronous email and notification work so request paths stayed focused on user-facing work.
07Reviewed PRs, helped shape technical tasks and API contracts, and coordinated backend decisions with the frontend team.
System view
HOW THE PIECES CONNECT
01Next.js
02NestJS API
03PostgreSQL / TypeORM
04Redis + BullMQ
05Pusher
06Knock
07Firebase
08Veriff
09Loops
OutcomeThe product reached its first production launch in roughly six to seven months, supported launch activity and continued to handle recurring fight postings and live product usage after launch.
Technology
TypeScriptNode.jsNestJSNext.jsPostgreSQLTypeORMRedisBullMQFirebasePusherKnockVeriffLoops