Skip to content

Selected work · In active development

A field guide built from the games themselves.

TailCarve is an unofficial Monster Hunter reference designed around a simple rule: game, version, region, and language are part of the data—not details to discard. I am building the extraction pipeline, API, and web experience as one traceable system.

PRIVATE SOURCEMULTI-REPOSITORY SYSTEMPUBLIC LAUNCH IN PREPARATION
MH4U

Monster Hunter 4 Ultimate

Multiple patch-version datasets without silent substitution.

MH3U

Monster Hunter 3 Ultimate

A separate native extraction behind the same reference contract.

MHGEN

Monster Hunter Generations

Game-specific parsing with a shared, versioned output envelope.

The system

Extraction, import, and discovery stay connected.

The database is disposable. Reproducible, versioned extractor output is the source of truth. That constraint shapes every layer and makes it possible to explain where a value came from.

01 / EXTRACT

Game-native data

Python tooling produces validated JSON datasets with deterministic source keys, input hashes, languages, capabilities, and record counts.

02 / IMPORT

Version isolation

A Laravel API validates the complete contract before writing, then replaces only the selected dataset inside a transaction.

03 / BROWSE

Useful reference

A Next.js interface turns dense relationships into searchable catalogues, labelled filters, detail pages, and explicit URLs.

Product and engineering decisions

Dense data needs trustworthy boundaries.

TailCarve is not only a catalogue UI. Most of the important work is in protecting identity, provenance, and context as data moves between repositories.

Explicit dataset URLs

Every reference route includes the game and immutable dataset version. An unknown combination returns nothing rather than quietly serving a different release.

Stable source identity

Public detail links use extractor-owned source keys instead of database IDs, so equivalent entities can survive re-imports and version switches.

Language without destruction

Stored translations remain intact. The interface resolves the selected language with predictable fallbacks while keeping links shareable.

Readable filtering

Desktop discovery uses labelled controls and grouped facets rather than walls of pills, with mobile adapted from the proven interaction.

My role

One product across several technical worlds.

I own the product direction and work across binary-data investigation, extraction contracts, API design, database isolation, frontend information architecture, search, filters, testing, and operational planning. The challenge is making those layers reinforce one user-visible model.

Next.js 16React 19TypeScriptTailwind CSS 4Laravel 13PHP 8.4MySQL 8.4RedisPython extractionPest
Return to all selected work