React 19 + Vite web
Handled manually, step by step.
Now automated
Built React 19 + Vite web application with multi-step wizard flow: landing → team count selection → player nickname input → loading → results
Automated CS2 team balancer that pulls live FACEIT stats and creates fair teams using Bayesian scoring and a multi-objective balancing optimizer.
Cube · Bali, Indonesia



One change at a time — swipe through the four.
Built React 19 + Vite web application with multi-step wizard flow: landing → team count selection → player nickname input → loading → results
Integrated FACEIT Data API v4 for real-time player data: profile lookup, Elo rating, skill level, lifetime stats, and last 30 match history
Developed Bayesian-weighted scoring algorithm combining Elo with adjusted K/D, recent sample size, ADR/headshot context, and player archetypes
Implemented multi-objective team optimizer with locked groups, team locks, slot mirror balance, captain parity, star/weak distribution, and swap-based improvement passes
Built serverless API endpoint on Vercel with batch processing (5 players per batch) and rate limiting (100ms delay) to respect FACEIT API constraints
Created bilingual interface (English/Russian) with React Context-based i18n system and language toggle
Developed results display with color-coded K/D ratios, skill level indicators, team average stats, and balance spread percentage
Implemented responsive design optimized for both desktop and mobile use during LAN events
Added support for 2-10 teams with dynamic player count validation (5 players per team)
Swipe the metrics — each one with what it changed in the business, and why it mattered.
No rip-and-replace, no new SaaS to buy — we connected the tools already in the building.
I'm genuinely speechlessspeechless — this thing is insane. The tool works exactly as needed and completely eliminates the headache we had organizing local and online tournamentstournaments. I'm honestly blown away.
Slava — Founder at Cube
A 30-minute discovery call. We listen, sketch the schema live, and tell you whether we're the right fit — straight.
[email protected] ↗