jameschang.co [experience] [/now] résumé.pdf ↓

james chang / now

// /now · auto-updated May 31, 2026 at 3:52 PM PDT

What I'm up to /now.

A Derek Sivers-style /now page — the truth about where my time is going this month, not a "currently building" list that never updates.

/01

active

where the time is going · 2 projects

Fantasy baseball for the dozen-owner, auction-draft, keeper-league crowd that Yahoo and ESPN never really served. The app is live for OGBA — auction has wrapped and the season is in flight. Current focus is the day-to-day of running a team: a daily league cockpit on the home page (today's matchups, standings, trade proposals, league activity, injured list), smarter add/drop with live previews of how a move affects the roster, and an injured-list workflow that doesn't fight the user. Next up: tightening the in-season correctness of the standings, the daily stat lines, and the league dashboard.

The personal site at jameschang.co — homepage, project deep-dives, and a Derek Sivers-style /now page that auto-updates from eight feeds (WHOOP, Spotify, Plex, Goodreads, MLB stats, fantasy standings, Google Calendar) plus per-project TLDRs synced daily from each repo's CLAUDE.md. Recently shipped: a public bucket list, a feed staleness monitor that opens a GitHub issue when anything goes quiet, Google Calendar integration for upcoming events, and a cron-driven /now project hub that classifies each project as active or back-burner based on real GitHub activity. Plain HTML/CSS/JS on GitHub Pages — no build step, ~78 KB page weight, Lighthouse 100/100/100/100.

/02

back-burner

shipping but not daily · 6 projects

An AI trading experiment — Claude makes the buy / sell / hold calls, a small web app handles the data and execution, and a paper-trading account at Alpaca is the live target (no real money yet). 24/30 paper trades executed (as of 2026-05-14); 6 more needed to gate the Phase G live switch. Only Test 4 ($10k portfolio) is active; three $100 test portfolios deactivated (spent). Fixed: BTC/ETH removed from Claude prompts (StockHistoricalDataClient returned wrong $35 price for crypto tickers). Decision modes, oversight activity, pause/resume UI, sign-out all shipped.

The compliance platform I wished existed when I was importing — one place to manage CPSIA certificates, Prop 65 labels, PFAS tracking across 15 states, and FSVP audits for food brands. All four compliance modules are feature-complete: CPC version history + supersession, expanded PFAS substance database (EPA CompTox PFASMASTER), OEHHA Prop 65 weekly auto-update with diff alerts, and a tokenized B2B PFAS declaration request flow for supplier questionnaires. Just rebuilt the /learn content hub with two batches of compliance guides. Put the product through seven rounds of rigorous AI-assisted code review — security, performance, and architecture. Next up: start lining up the first paying customers.

A barbeque competition judging platform — replaces clipboards, carbon copies, and spreadsheet math with real-time digital scoring for organizers, table captains, and judges. Just wrapped a shipping-readiness pass: analytics installed, search-engine basics in place, and an automated check on every code change before it ships. Next up: a richer test setup so the app gets exercised against a real database, ahead of piloting at a sanctioned competition this season.

A marketplace for hard-to-get Taipei restaurant reservations — a scraper pulls listings from inline.app, and a modern web storefront with Stripe handles the buy side. Recent AI-assisted work has been mostly scaffolding: an admin dashboard, a way for Claude Code to poke at the scraper and database directly, and project-specific shortcuts for running tests and keeping docs in sync. Honest blocker: neither side of the transaction is live yet — checkout isn't wired and the scraper has barely been run — so the next push is getting one full listing-to-purchase flow working with real data.

Laravel 8 API backend for Tastemakers — live on Railway at api.tastemakersapp.com. GitHub auto-deploy active (push to main → Railway builds automatically). Debug/diagnostic routes removed (debug-schema, debug-signup, run-schema-fix, clear-cache). Remaining security work: unauthenticated delete endpoints and IDOR vulnerabilities. Production DB is empty — all real data still on legacy Namecheap MySQL host.

My food blog from 2007–present, rebuilt from Wayback Machine archives and Instagram exports — 1,639 posts and 1,400+ mapped restaurants live at thirstypig.com. Venue tags long-tail push ongoing: 655 venue JSONs published, 885 posts displaying tag pills, 699 venues in venues.yaml. Python test suite at 118 (+ new test_scrape_google.py for auth_gated() heuristic). Next up: keep extending venue tags (use curate_candidates.py --min-posts 1), then roll out the Bold Red Poster redesign across the rest of the site.

/03

on the calendar

via google calendar · Auto-updated May 28, 2026 at 3:09 AM PDT · 10 upcoming

may
01
Asian American and Pacific Islander Heritage Month
Los Angeles, CA United States ·
may
30
Summer Arts Festival
Downtown Burbank, CA, United States ·
may
31
Huntington Library & Botanical Gardens 1151 Oxford Rd, San Marino, CA 91108, United States ·
jun
04
Patina Lounge 1056 Mechem Dr, Ruidoso, NM 88345, United States ·
jun
06
Ruidoso Downs Race Track & Casino 26225 US-70, Ruidoso Downs, NM 88346, United States ·
jun
20
Open Market 3339 Wilshire Blvd, Los Angeles, CA 90010, United States ·
jul
26
Huntington Library & Botanical Gardens 1151 Oxford Rd, San Marino, CA 91108, United States ·
sep
22
Lucas Museum of Narrative Art 3800 S Vermont Ave, Los Angeles, CA 90037, United States ·
sep
26
Bonaventure Hotel 404 South Figueroa Street, Los Angeles, CA 90071, United States ·
oct
02
Cardinale Stadium 4111 Second Ave, Seaside, CA 93955, United States ·
// targeting · still finalizing
  • Best Dam BBQ · · Boulder City, NV
  • IBEW So Cal BBQ & Chili · · Santa Ana, CA
  • 22nd Burnt Offerings BBQ · · Riverside, CA
  • BBQ Jackpot · · Las Vegas, NV
/04

exploring

Wired the entire Claude-assisted project ecosystem into a single, searchable knowledge base — todos, docs, decision records, and session notes across all 8 active projects, linked and cross-referenced in one vault. Synced across Mac and iPhone via iCloud. Built a pipeline from Obsidian → GitHub → thirstypig.com for the restaurant hit list, so updating the list on my phone updates the blog automatically.

Testing an MCP server that gives Claude Code (and any other MCP-aware agent) read/write access to my Upnote notes. The pull is keeping fleeting thoughts, draft prompts, and reference notes outside the chat window but still accessible to whatever agent is doing the work — no context-switching to the app to copy a paragraph back in. Running it alongside the Obsidian setup to see whether one becomes the canonical capture tool, or whether they cleanly split (Upnote for raw thinking, Obsidian for project ops).

Codex alongside Claude Code

Running OpenAI's Codex CLI agent in a second terminal tab alongside Claude Code, to see whether a multi-agent split makes sense for day-to-day work. The hypothesis: Codex is especially strong at test generation, so the experiment is "Claude writes the feature, Codex writes the tests." Early instinct for this repo's style: one agent deep beats two agents shallow. Want to run it on a harder codebase before I commit.

// back-burner — circling back when there’s a real reason to

Open-source AI agent — Peter Steinberger’s project that runs locally and interfaces with Claude, GPT, or DeepSeek via messaging platforms. Tabled for now: between Claude Code and Cursor I haven’t hit a workflow gap that warrants standing up a third agent surface. Worth a second look if a use case shows up that needs the messaging-app entrypoint specifically.

/05

health · recovery

via WHOOP api

recovery
83%
hrv
30 ms
resting hr
65 bpm
sleep
5h 55m

Auto-updated May 31, 2026 at 4:43 AM PDT via WHOOP API · day strain 4.2 · sleep efficiency 94%

/06

off the clock

board service · sgv eats · sports

dodgers MLB Stats API

Dodgers: 37-20. Last: L 3-4 vs PHI · Next: Sun 1:10PM vs PHI.

Auto-updated May 31, 2026 at 2:23 AM PDT via MLB Stats API.

los doyers OGBA 2026 · keeper league

Los Doyers: 3rd of 8 · 48 pts · OGBA 2026

Auto-updated May 31, 2026 at 2:23 AM PDT via The Fantastic Leagues.

dogfooding the AI-assisted platform I built · 30+ year keeper league, 8 owners, auction draft
/07

watching · listening · reading

watching Plex
  • The Lincoln Lawyer S04E05 — “You're the One That I Want” · 13h ago
  • Marshals S01E07 — “Family Business” · 1w ago
  • Captain America: The Winter Soldier · 1w ago
  • Dutton Ranch S01E02 — “Earn Another Day” · 1w ago
  • John Wick: Chapter 2 · 2w ago

Auto-updated May 31, 2026 at 12:52 PM PDT via Plex.

// favorites

  • Tulsa King
  • The Diplomat
  • The Lincoln Lawyer
  • Pluribus
  • A Knight of the Seven Kingdoms
  • Landman
  • The Bear
listening Spotify

Auto-updated May 31, 2026 at 3:52 PM PDT via Spotify Web API.

// favorite podcasts

  • Baseball Tonight with Buster Olney
  • How I AI
  • Lenny’s Podcast
  • The Kevin Rose Show
  • Diggnation
  • The Deal
  • The Tim Ferriss Show
/08

posting

@thirstypig: Instagram · Facebook · TikTok · X — food, travel, and SGV dispatches. The visual companion to the blog.