From the trading desk to the product roadmap.
Two decades reading players, operators, and the platforms between them. I ship product across the iGaming ecosystem — with behavioural risk as the specialty I keep coming back to.
A trading floor is where I learned to read risk.
I started as a European sports trader at Sportingbet, then OffsideBet — compiling odds and trading in-running across football, basketball, tennis, and more. Spotted arbitrage and bonus abuse from the operational side before those terms ever showed up in a risk framework. Moved into sportsbook management at Betologic Cyprus, then spent four years as a Data & Trading Analyst at Playtech turning betting patterns into KPIs and risk reporting instead of gut calls. That grounding carried into product management across B2B iGaming platforms — Playtech Sports, Leap Gaming, and NuxGame — shipping player-facing product, operator tooling, and platform capabilities across those B2B platforms.
Along the way I've shipped player-facing product (casino, sportsbook, virtual sports, retail cashier flows), commercial engines (promotions, loyalty, gamification), and the operator tooling that runs all of it (CRM, segmentation, back office). When I talk about bonus abuse, I know the mechanics because I've built them.
Today at B2Tech I'm the product owner for risk systems targeting emerging markets — USSD flows, retail agent networks, mobile money, fragmented identity infrastructure. Risk is the specialty; product across the platform is the profession. The frame behind every case below: the best iGaming products balance player experience, commercial performance, operator efficiency, and the risk that follows all three.
Organized by domain, not by employer.
Five cases — starting with current risk focus at B2Tech (with a personal prototype demonstrating the operating model), then promotions, CRM, PVP Slot Arena, and virtual sports.
Static, binary rules — block this IP, cap this deposit — degrade fast against adaptive fraud, and don't reflect the operational reality of emerging-market B2B operators: mobile money payments, retail agent networks, fragmented identity infrastructure, USSD sessions with no persistent device fingerprint. Manual review doesn't scale as new operators onboard.
My priorities: moving detection from static thresholds toward a hybrid model — rules for known patterns, scoring for everything else — so a genuinely new fraud pattern doesn't need a hard-coded rule written before it can be caught. Structuring detection logic around Trigger → Condition → Action so Risk Ops can read and reason about any rule the same way, regardless of which system raised it. Building progressive, risk-based KYC so verification escalates only when triggered by deposit thresholds, withdrawal requests, or behavioural flags.
- Named-pattern taxonomy — maps to defenses
- Live risk posture at a glance
- Case-work queue prioritization
- Investigation performance visible
- Custom event builder
- Expected outcomes declared upfront
- Trigger → Condition → Action model
- Regression-testable before deploy
Emerging-market fraud doesn't look like European fraud. Mobile money, retail agents, USSD sessions, and fragmented ID infrastructure make static rules degrade quickly and manual review too expensive to scale as new operators onboard.
Move from rules-only to hybrid (rules + scoring). Structure every rule around Trigger → Condition → Action so Risk Ops can author and audit them without Engineering. Layer in progressive KYC — verification escalates on behavioural flags, not on registration.
Current focus, not a closed case study. Direction: fewer manual reviews per fraud dollar caught, a scoring layer that keeps pace with fraud patterns specific to mobile money and retail-agent networks, and rules Risk Ops can rewrite without a deploy. The prize isn't just catching abuse — it's not flagging legitimate players, and giving operators a defensible audit trail when regulators ask.
Operators needed regionally compliant marketing without losing affiliate-driven conversion. Players needed relevant offers, not untargeted spam. And the underlying segmentation logic had to stay maintainable as region rules and campaigns kept multiplying.
Specified a weighted segmentation engine — players matched against ranked include/exclude rule sets so targeting resolves deterministically even when multiple rules could apply. Designed a GEO-blocking system around a soft-block UX plus time-based restriction windows and affiliate-ID exceptions. Owned the postback and attribution implementation connecting registration and deposit events back to affiliate tracking codes in real time.
Operators could configure segmentation, GEO rules, and affiliate exceptions themselves — no new engineering request every time a region's rules changed. Marketing shipped campaigns; Compliance audited them; Engineering stopped being the bottleneck. Players got the right offer in the right region instead of irrelevant blanket comms.
Player wager
House-edge cap
Effective HE floor
- Base rakeback % — operator-set
- House-edge cap — bounds worst case
- Per-currency exposure caps
- HE floor prevents high-RTP farming
− (Wallet − ExcludedBalance)
− OpenBets − Rollbacks
EffHE = min(100 − RTP, HE Cap)
Promotion mechanics are a direct abuse surface — players time deposits and withdrawals around a cashback window, or count funds never actually at risk toward a loss calculation. Operators also wanted richer retention mechanics without engineering building a new reward type each time.
Designed the Eligible Net Loss cashback formula. Specified a rakeback engine bounded by per-currency caps and a house-edge ceiling. Added a dual-currency achievement system (XP + Shop Points) with trigger-based conditions — login streaks, category turnover, KYC completion, deposit count — tied to configurable rewards.
Risk and Finance could bound worst-case exposure before a promotion launched — not scramble after abuse was detected. Marketing could launch new reward mechanics from the operator surface without a new engineering ticket. Players got promotions that rewarded genuine play, not the ability to game a formula.
- Three battle types in parallel
- Entry, spins, players, pot at a glance
- Timer-to-start visible per battle
- Enabled providers surfaced upfront
- Live turnover & fee income
- Participant count
- Battle-status breakdown
- Failure-rate visibility
- Battle-type toggles per game
- Configurable spin-range bounds
- Platform-fee override
- Operator-independent config
Standard slot mechanics are single-player against the house. A PVP structure — two players on the same game, same stake, winner takes the pot — needs a way to isolate at-risk funds from a player's main balance, define a fair win condition beyond raw multiplier luck, and let an operator bound its own exposure.
Designed a locked PVP wallet with EUR conversion so battle stakes are ring-fenced regardless of deposit currency. Three configurable battle types (Max Winnings, Max Multiplier, Consecutive Wins) let operators pick the win condition that fits a given game's volatility. Built the operator tooling covering entry fees, provider/game eligibility, feature toggles, and GGR/turnover/fee reporting; a cancellation and penalty structure so incomplete battles resolve predictably.
A live end-to-end build — battle creation, join, resolution, and operator reporting all playable. The exercise: prove I can move from concept through system design (wallet, FX, battle-resolution logic, operator autonomy) to a running product, not just the design half of it.
- Multi-bet types in one slip
- Markets switchable per match
- Officially licensed content
- Persistent betslip state
- Open/Closed history split
- Next Matchup always visible
- Print-optimized layout
- TV + cashier friendly
- Mobile-first UX
- Skip animation to result
- Session-length aware
- Data-cost-conscious
Grow from a handful of virtual sports titles into a portfolio spanning retail (TV/cabinet), mobile, and licensed branded content — competing against established virtual sports providers. Decisions were being made without a clear read on which mechanics drove engagement.
Owned the roadmap end to end: PRDs for a mobile-first basketball title for low-connectivity markets, a retail football league product (big-screen TV plus cashier flow), an officially licensed branded basketball game, and racing-streak upgrades. Ran a ~13-month cross-functional delivery program across game engine, cashier interface, and satellite delivery. Used analytics event tracking to define what "engagement" meant per product before feeding that into UX and bonus specs.
Operators went live with a virtual sports portfolio across both retail cabinets and digital channels. The event-tracking layer became the repeatable basis for how the team prioritized the next wave of features — no more product intuition alone.
Three principles I apply to every product decision.
Reusable across risk, promotions, platform work — grounded in real product decisions I've shipped.
Root problem, not surface request
Stakeholders describe symptoms, not causes. Digging past the ask to what's actually broken — then proposing what they wouldn't have thought to ask for — is where product judgment lives.
Force multiplier, not just a tool
A back-office system is judged on how much more its users can do with it — bulk actions, shortcuts, automation of the repetitive — not on whether a new screen exists.
Trigger → Condition → Action
A shared operating model for every rule in a risk system. Traders, Risk Ops, Engineering, and Compliance all read a rule the same way: what event fires it, what must be true, what happens next. This lets Risk Ops author and tune rules without Engineering, keeps every rule explainable to auditors, and makes rule regression testing tractable.
Where the domain depth sits.
Six areas that keep coming up across my product work — each anchored in a case above or in the current role.
Career timeline.
If you're building iGaming products where risk, promotions, or player behaviour matter — let's talk.
Also happy to chat about how the balance between player experience, commercial performance, operator efficiency, and risk actually plays out in production — or about anything specific from the cases above.