Stefan Florescu
QA Automation & Game QA Engineer
8+ years in QA, 4.5 of them on FIFA Mobile at Electronic Arts. Today I combine hands-on QA with AI-driven test automation, and make sure every payout and balance is right.
Open to roles · Full-time · Remote or hybrid in BucharestRemote / Bucharest
- 8+ years in QA
- ex-EA FIFA Mobile
- ~350 automated tests
- 4,000+ rounds verified
Experience
-
Client · ZOOT
A US social & sweepstakes casino platform (formerly Enigma Lake) and its in-house games.
- Full-spectrum manual QA (scripted, exploratory, A/B) that grew into AI-driven test automation
- Playwright suite of ~350 tests, Smoke and Regression runs in TestRail
- Games verified down to the maths: every round re-calculated from the rules
- Release checks for batches of up to 66 games
- Built the QA Companion Chrome extension used by the QA team
Client · AQUANFT marketplace web app. Manual QA across the full range: scripted and exploratory testing, A/B testing, functional and regression testing.
-
FIFA Mobile
4.5 years on one of the world's biggest mobile games, through its live releases: new-feature, regression and sanity testing, with test cases in TestRail, bugs in Jira and builds from Perforce.
Selected work
- Case 01
Calling a NO-GO
NO-GO- Problem
- A new slot game's optional "extra play" cost 1.5× the stake, and the spec called it fine.
- What I did
- Turned the spec into ~90 checks and played the edges of the play limits. At the maximum stake the real cost broke the platform limit, and I re-tested in a fresh session before reporting.
- Result
- A clear NO-GO with evidence, so the launch decision was made knowingly.
- Case 02
Proving games pay what the rules say
- Problem
- The server calculates every win; I wanted a check that did not depend on the game's own code.
- What I did
- Wrote a verifier per game from the rules document (lines, wilds, cascades, bonus rounds, caps), plus statistical sanity checks (chi-square, z-score, Monte Carlo) on hit rates and RTP.
- Result
- 4,000+ real rounds across 6 games, 0 maths mismatches.
- Case 03
A QA tool for the whole team
- Problem
- Testers checked balances and banned wording by hand on every game.
- What I did
- Built a Chrome extension (Manifest V3 side panel): a round log, a balance check after each round, a banned-wording scan and a downloadable checklist, shipped with versioned releases.
- Result
- Reached v0.9.3; the QA team used it in their game testing.
- Case 04
Automation at platform scale
~350 tests; Plinko suite 26% faster, no new flakiness.
Problem & approach
- Problem
- A growing platform and game catalogue needed regression coverage.
- What I did
- Built a Playwright suite (61 specs, 301 catalogued cases) with Smoke and Regression runs, TestRail reporting, a run dashboard and templates per game type.
- Case 05
Release checks for 66 games at once
A clear Released / No / Blocked call for every game.
Problem & approach
- Problem
- A provider delivered a big batch, and each game needed a release decision.
- What I did
- Drove a real Android phone and a desktop browser in parallel: one play per currency, banned wording, currency labels, both layouts and max exposure under the limit.
- Case 06
Setting the QA process
Repeatable QA across games; judgement stays human.
Problem & approach
- Problem
- The QA process lived in people's heads.
- What I did
- Defined how we test (spec to checks, re-test before reporting, clear GO / NO-GO rules) and wrote it down as 10 reusable AI agent playbooks with Claude Code.
ZOOT games
ZOOT has closed, but its games live on in a public archive at zoot-portfolio.pages.dev. One of them I built; below it are a few I tested end to end, with manual testing and AI-driven testing.
- Built · Sep 2026
Claw Machine
BUILT- What it is
- An arcade claw-machine game for the ZOOT platform, credited to me in the archive.
- What I did
- Built it with Forge, ZOOT's AI game builder, by writing the prompts and feeding it reference images and reference games, then shaped it until it was ready to ship.
- Result
- The team turned it into a reusable template: Autumn Claw and Midnight Claw (Oct 2026) are built on it.
- See it
- Claw Machine ↗Autumn Claw ↗Midnight Claw ↗
Tested · a few that stood out
- Cluster cascade slot
Hellfront
GOEvery round re-derived from the rules; hit rate 26.2% against 26.5% predicted.
See it in the archive ↗What I checked
- Approach
- Turned the game's spec into ~90 checks, wrote an independent verifier for cluster wins, cascades and multipliers, and tested on a real Android phone.
- Outcome
- Released as GO with two minor fixes. A first sample of 101 rounds looked off; 271 rounds showed the game was right.
- Coin slot
Cauldron Grab
GO1,405 real rounds re-checked, 0 maths mismatches.
See it in the archive ↗What I checked
- Approach
- Verified line wins, Coin Grabs and every Bonus Round frame by frame against the rules, plus balances, languages and layouts.
- Outcome
- GO after two wording fixes, one of them a gambling term in the Chinese translation.
- Coin slot
Coinfall Grab
FIXED SAME DAYA phone-landscape bug found, reported and fixed the same day.
See it in the archive ↗What I checked
- Approach
- Tested on a real phone held sideways and measured the game window against the layout's limits.
- Outcome
- The play controls were cut off below about 270 px of height; the developers shipped a fixed build the same day.
- Line slot
The Ritual
NO-GOThe NO-GO from Case 01: a paid feature broke the play limits.
See it in the archive ↗What I checked
- Approach
- Played the edges of the play limits in both currencies and re-tested in a fresh session before reporting.
- Outcome
- A clear NO-GO with evidence, so the launch decision was made knowingly.
How I test a game
Client work is confidential, so I rebuilt the method on a small fictional game. Invented data, real method.
- 01
Rules become checks
Every claim in the rules document maps to a check.
PASS - 02
Independent verifier
Re-derives every round from the rules, not the game code.
PASSSee output ↓ - 03
Exact model + data
All 27,000 outcomes give the exact RTP; 5,000 rounds are tested against it.
PASSSee output ↓ - 04
Playwright suite
16 tests on desktop and phone; a planted bug fails exactly one.
PASS - 05
QA report
Verdict first, then evidence, then every check.
PASSWATCH 1 - 06
Play it
The game runs in the browser; a seed makes rounds replayable.
PASS
5,000 rounds stay inside the predicted band
Payout rate (RTP) over 5,000 played rounds. Inside the band means the game pays as its rules predict.
- assert 01
Re-test before reporting
A finding goes out only after it reproduces in a separate run.
- assert 02
Small samples lie
18% hit rate over 100 rounds was 26.2% over 271 (26.5% expected).
- assert 03
Measure, then change
Speed work starts with a baseline with retries off and ends with three clean runs.
- assert 04
Verdict first
Reports open with the decision and the evidence.
Skills
- Game QA
- Live-service mobile games, RTP and paytable checks, statistical sanity checks, provider parity, sweepstakes release checks
- Testing
- Manual, scripted and exploratory testing, A/B testing, test automation, regression and sanity, test case design, spec-based testing, release testing, risk analysis
- Tools
- Playwright, Postman, TestRail, Jira, Confluence, Perforce, Chrome DevTools / CDP, Android ADB, Git / GitHub
- Code
- JavaScript, TypeScript, Node.js, HTML/CSS, Chrome Extensions (MV3)
- Infra
- Cloudflare Workers (extension release site), AWS ECS + Pulumi (helped deploy game servers)
- AI
- AI-driven test automation, AI agent playbooks (Claude Code), AI-assisted test design, verification and reporting
What I'm looking for
QA Automation · Game QA · QA Lead
Next focus: AI-assisted QA and test automation.
Full-time · Remote, or hybrid in Bucharest
EU-based (EET) · I live in Ilfov
Games & iGaming · Fintech & payments
Anywhere money calculations must be right: payouts, balances, rounding, limits.