Freelance · 2025–Present · Live
KukiMuki
Senior Front-end Developer
Live casino and sportsbook frontend — lobby, cashier, KYC, and loyalty on Angular 21.

Context
Production iGaming product (casino + sportsbook). Built with a wider product org (backend and other departments); on frontend we were three — one lead and two senior front-end developers — I am one of the seniors. Scope: app shell, core product flows, and integrations through production releases. Sister brand ZenCasino shares the same architecture (see that case for brand parity).
Problem
Wide product surface — lobby, game launch, sportsbook, deposits/withdrawals, KYC, missions, shop, CMS landings — must stay fast on first load, support light/dark, and stay maintainable while features keep landing.
Decisions & tradeoffs
- Angular 21 zoneless + OnPush instead of default Zone.js change detection — less overhead on a busy SPA.
- NgRx for shared domain state, Signals for local UI — instead of putting account/cashier into component-only state that doesn’t travel across routes.
- Selective SSR (lobby/marketing server-rendered; account/cashier/game client) instead of SSR-everything — SEO where it pays off, less complexity on auth-heavy screens.
- Orchestrator facades over store + HTTP instead of fat page components — payment/auth/missions logic stays in one place.
- Payload CMS instead of Strapi for promo/landing content — TypeScript-native CMS, clearer content models for campaign landings without FE releases.
- Two brand repos (Kuki / Zen) instead of one multi-tenant build — faster brand shipping; cost is explicit feature parity work.
What I built
- Angular 21 app shell: standalone routes, auth guards, Express SSR with incremental hydration, PWA service worker, shared UI kit.
- Lobby and game launch: category filters, game grids, Casino / Live / Sport modes, light/dark theme with CDN brand assets.
- Auth and account: schema-driven forms, session/interceptors, profile/security/limits, Sumsub KYC WebSDK.
- Cashier: deposit/withdraw flows, PaymentIQ embed, crypto deposit UI, NgRx cashier state.
- Loyalty and promotions: missions (HTTP + Socket.IO), shop, calendar, Payload CMS landings (replacing a Strapi-style CMS path); Transloco i18n, Sentry, SEO meta sync.
- Ongoing client delivery and production releases on the live product.
Outcome
Live production frontend at kukimuki.com — lobby through cashier, account, KYC, and loyalty; multi-locale i18n; payments integrated; ongoing feature releases.