Michał Kamiński

Personal Project

Remote · 2024

Hearthstone Data Exploration

Python · Data Analysis · Blizzard API

Role Data Explorer

This started as curiosity. I had played Hearthstone long enough to have opinions about card design but not long enough to back them up with numbers. So I built a fetch pipeline and a notebook to actually look: mana curve distribution, class spread, rarity breakdown, multiclass patterns. The kind of analysis where you think you know what you will find, and then find something slightly different.

Blizzard's API returns everything as paginated batches of raw integer IDs. Class ID 9 instead of 'Paladin', type ID 4 instead of 'Spell'. Before any chart could say something honest, I needed an OAuth-authenticated async fetcher that handled batched pagination, plus ID-to-label mappings that made the data readable. Without that layer, you just get charts that look authoritative but mean nothing.

  • 01 Built an async Python fetcher with aiohttp, OAuth client credentials, and batched pagination to pull the full card dataset reliably.
  • 02 Persisted raw data locally and loaded it into pandas for repeatable, version-stable notebook analysis.
  • 03 Mapped all class, type, and rarity IDs to readable labels so the data could speak for itself without constant lookup.
  • 04 Wrote findings in notebook markdown so the project reads as analysis with a point of view, not just a folder of plots.
This became the direct foundation for HearthSwipe. The data pipeline, the card schema understanding, the instinct for which patterns were actually interesting. All of it carried forward. A good example of how exploration can double as product research if you let it run long enough.
  • Python
  • Pandas
  • Matplotlib
  • Seaborn
  • Blizzard API
  • Jupyter

Working on something in the maritime software or applied AI space? Let's talk