DUTIES AND RESPONSIBILITIES:
- Own the slot-client codebase.
- Own the typed HFSM modelling the slot spin lifecycle, including free spins, bonus rounds, and error / recovery transitions.
- Own the offline mocked backend used for development, QA.
- Own jurisdiction-aware compliance UI: a single client able to satisfy the rule set of different markets under audit without per-market code forks.
- Own session recovery and reconnection behaviour for mid-spin, mid-free-spins, and mid-bonus states.
- Own client-side performance budgets and the asset, atlas, and texture-memory strategy.
- Author and maintain frontend technical documentation: layer contract, HFSM state and transition diagrams, asset manifests, jurisdiction-profile schema.
- Actively use and document the use of AI tools (ChatGPT, Gemini, Claude) for scaffolding, refactor proposals, and documentation.
- Document outcomes alongside prompts so the workflow is reproducible by the team.
Requirements:
- Strict five-layer architecture (Presentation / HFSM / Domain / Network / Platform), cross-layer access is non-compliance
- Typed HFSM for slot lifecycle: idle, bet, spin, free spins, bonus, error/recovery
- Session recovery on disconnection during spin / free spins / bonus
- Externalisation: paytable, reel strips, RTP, jurisdiction profile, feature flags - from config or server
- PixiJS v8 - 60 fps on mobile and desktop browsers without rendering artifacts
- Spine-Pixi v8 - skeletal animation for symbols, characters, and bonus presenters
- GSAP - animation orchestration: spin-stop, win-line reveal, cascade, jackpot/bonus entry
- Atlas, texture-memory and asset-loading strategy within mobile budget
- Client is presentation layer only, server is authoritative for RNG, balance, and outcome
- Jurisdiction-aware behaviour via config, no per-market code forks
- No secrets, SDK keys, or credentials in source, fixtures, or git history
- 60 fps target / 30 fps floor on low-tier mobile, documented bundle-size and load-time budgets
- Timeouts, exponential backoff, idempotent retries via BackendAdapter
- Structured logging with correlation ID for cross-referencing with backend
- Stack: TypeScript, PixiJS v8, Spine-Pixi v8, GSAP, Vite, Axios, Git
- (nice to have) Production experience on a regulated slot or iGaming frontend
- (nice to have) Live-ops: jackpot events, tournaments, A/B tests
- (nice to have) Localisation: RTL, CJK
- (nice to have) CI/CD: lint, type-check, test, build, deploy
- (nice to have) Technical writing: layer contracts, HFSM diagrams, runbooks
