// Data Scientist & ML Engineer · Budapest

I build things that think.

I build recommenders, game-playing bots and the small apps around them, and I measure each one against something before I say it works.

29kanime in the catalogue
5tastes at most, per person
0.90cluster purity, vs 0.65 embeddings alone
5xless memory than the Python server it replaced

§ 01

Selected work

Taste-cluster anime recommender

Rate what you have watched and it finds the separate tastes in your list, then recommends for each one instead of averaging you into a single blur. A Go engine with a React front end, measured on 2,000 held-out users.

GoembeddingsclusteringReactPython
29,311anime in the catalogue

Slay the Spire bot

A bot that plays Slay the Spire as the Ironclad, talking to the game through CommunicationMod. A learning pipeline trains it; a C++ simulator is the referee, because a bot that misunderstands the rules learns the wrong game.

PythonPyTorchC++CUDA
A0Ironclad, ascension zero

Dailiverse

Daily puzzles with one rule: the server decides. It owns the puzzle, the date and your streak, and a single finished game is enough to keep the streak alive. Next.js on Vercel, Postgres behind it.

Next.jsTypeScriptPostgresVercel
livewww.dailiverse.com

Anidle

Wordle for anime characters: guess the hidden one, and every guess shows how close its series, species, hair, class and age are. About 120 characters, vanilla JavaScript, no framework.

JavaScriptno framework
120characters

§ 02

Working rules

0.3 a weight that ranked worse than none

Measure what is actually served

A diversity weight shipped at 0.3 for months while ranking worse than no weighting at all, because nothing measured the configuration users were getting. Now the weights are validated at startup and re-measured before any change.

76/80 speakers named exactly, zero confident errors

Let the model say it does not know

In the audiobook generator a line the model cannot place falls back to the narrator's voice. A hesitant narrator is a small flaw; a confident wrong character is a broken book.

1ref a C++ simulator

Give the model a referee

The Slay the Spire bot is checked against a simulator. When the bot's picture of the rules and the simulator's disagree, the bot is the one that is wrong.

§ 03

Path so far

2024 — 25

Erasmus at Humboldt University, Berlin

Third semester abroad, AI and machine learning coursework.

2023 — now

MSc Computer Science

AI specialization at Eötvös Loránd University.

2023

Best Employee Award

Risk Management Division, Fundamenta Housing Savings Bank - recognized for outstanding performance in risk modeling

2021 — 22

Morgan Stanley Experience

Risk Analyst developing internal knowledge systems and database optimization for enhanced data accessibility

The full story

§ 04

Tools I reach for

§ 05

Take a guess

Four guesses is a good day.

Anidle gives you attribute clues instead of letters. Green is a match, amber is close, and the arrows tell you which way the age lies. This round is a sample; the real one is a click away.

Open the arcade