

Pokémon Portfolio
My CV as a Game Boy role-playing game: walk the map, talk to people, and fight a gym leader, instead of scrolling a page
The idea
Every developer portfolio is the same page. A hero, some cards, a timeline, a contact form. I wanted to find out how much of an actual game engine I could put in a browser tab, and a portfolio is a good excuse because nobody minds if it is strange.
So the CV is a world. You walk it with the arrow keys, the sections are places, the people are NPCs who talk to you, and there is a fight at the end.

What is actually in it
Six systems, none of them faked:
- A tile world with layered maps, collision, doors between areas and camera follow.
- A dialogue system for NPCs, with branching and typed-out text.
- A turn-based battle engine, kept in its own module with its own state so the combat maths is testable away from the rendering.
- An inventory and a progression system that tracks what you have found and done.
- Save and load, so closing the tab does not throw the visit away.
- Localisation through i18next, because the whole thing exists in more than one language.
State is MobX stores, one per domain, which suits a game far better than a request-shaped data layer does: the world, the party, the inventory and the battle each own their state and the renderer just observes.
Why it is archived
It works and it is live, and it is also from a period when I was answering a different question than the one my work answers now. It is here because the engineering in it is real, and because it is the only thing on this page you can lose an afternoon to.
Building something in this territory? Start a conversation →
