XAN TORRES
Back to work
Sunflower GamesSocial Casino2025 – 2026crowncoinscasino.com

Built a roulette mini-game and ops tooling across game UI, admin, and Node services.

I worked across a live dual-currency social-casino product: NestJS services, Prisma migrations, React admin dashboards, and a Rive-driven game surface. The work ranged from a full roulette mini-game and mission system to bulk imports, jackpot sharing, free-rounds, and i18n.

Full-stack
Real-time UI
State machines

What changed

Pulled validation, services, animation identity, and cache invalidation into the same delivery path.

Measured outcomes

roulette mini-game shipped
Zero → prod
ops onboarding after bulk import
Hours → mins
product surfaces owned across the stack
4

Highlights

  • Built a full-featured roulette mini-game from scratch: drag-and-drop chip placement, Rive state-machine animation, and a chip-identity model that stopped merge/split jitter.
  • Shipped missions across backend CRUD, admin UI, nested rewards, goals, conditions, and post-creation locks on economy-critical identifiers.
  • Built a spreadsheet import flow for ops with schema checks, business rules, asset-ratio validation, currency validation, and per-row errors mapped back to the source cells.
  • Added jackpot image generation and social sharing with the Web Share API, clipboard fallback, Redis TTL based on amount, and locale-aware currency formatting.
  • Wired free-rounds from wallet API through mission-start cache invalidation to the UI, including auto-play support and an explicit state model.
  • Built assignment management with server-side overlap checks and conflict detection, keeping the authoritative date on the server.
  • Added AWS SSO shell helpers and database utilities the team kept using after the feature work was done.

Outcomes

  • Delivered missions, roulette, free-rounds, jackpot sharing, and the bulk-import flow across admin, game UI, and backend services.
  • Three rounds on chip identity produced a pattern the team could reuse for later animated game components.
  • Bulk import took an ops workflow from hours to minutes, with validation on both client and server.

Stack

  • TypeScript
  • React 18
  • Vite
  • TanStack Query
  • NestJS
  • Prisma
  • Sequelize
  • PostgreSQL
  • Redis
  • Rive
  • AWS
  • Turborepo