Hongjun An
λ 420 NM · OWN PRODUCT
Case 09 / 09한국어See it in 3D

The problem

Show Korean trading-card buyers — Pokémon, Yu-Gi-Oh!, One Piece — prices from Korea, the US and Japan on one screen, with sales, asks and list prices kept apart.

Decisions

  1. An honesty charter: no fake numbers; only values measured at least twice (a single one is marked as a sample); no unlabeled numbers; no averages that mix sales, asks and list prices; no predictions; errors kept distinct from “none”; sources shown.
  2. Active eBay listings are re-sorted by price plus lowest shipping, with a ratio-trimmed mean as the representative value. On one card, fixed trimming gave $136.50 and ratio trimming $243.56 — free of bait listings. This axis is always labeled “ask”.
  3. Words that flag polluted overseas listings — same-name items, empty boxes, bundles — came from real samples (0 false positives in 120). The 6× divergence threshold is measured too: normal 1.24–4.73×, mismatches 100× or more.

What broke — and the fix

  1. Four outages (20 min, 2 min, 5.9 h, 47 min). The database status API said healthy while one-row queries timed out at 8 s, 49 times in a row. The cause was the disk IO budget; after a compute upgrade, 0 outages even under triple load.
  2. Missing images jumped by 3,875 — not a regression. The weekly cron had added rows that never had images at the source; existing images lost over a month: 0.

Results

  • 80,591 cards (Pokémon 62,097 · Yu-Gi-Oh! 14,472 · One Piece 4,022)
  • 77,068 source images + 231,204 derivatives · 98.5% coverage
  • 11 regression suites · 27 pricing-engine unit tests PASS
  • Prices, search, card and sealed-product pages, market and shop onboarding all working
RoleSolo — I run it
DurationLong-term — I run it
StatusLive
StackNext.js · TypeScript · Supabase · Vercel · Resend