Full-Stack Developer · Maker · Dad
"Building arcade magic for the family — one game at a time."
// about
I'm a developer who builds things for the people I love. The F.O.N.G. Arcade started as a personal project to create games the whole family could play on any device — from a modern laptop to a beat-up old tablet. Over the past year it's grown into a platform of 33 games and utility tools, built entirely in vanilla JavaScript, no frameworks, no build tools, no shortcuts.
I collaborate with a team of AI agents — Claude (Senior Dev & Docs), Gemini (Creative Director), and Jules (Lead Architect) — to design, build, and ship real software. The result is a living arcade that grows a little more every week.
// philosophy
No CDNs, no npm, no build step. Every game runs from a single folder of HTML, CSS, and vanilla JS.
ES5 syntax and touch-first design so it works on the family's oldest tablet just as well as a new laptop.
Three AI collaborators and one human. We use agent handoff documents, not prompts. Real software engineering, not copy-paste.
// skills
Languages
Browser APIs
Architecture & Patterns
Tooling & Workflow
// history
The project began as an offline-first multi-carrier package tracker. This phase established the core engineering principles that govern everything built since: strict ES5 syntax for old tablet compatibility, no external CDNs, IndexedDB for offline storage, and the BYOK (Bring Your Own Keys) security model for API credentials.
Built a reusable card game engine from scratch with an Entity-Component architecture. Blackjack was the first implementation, requiring a full state machine (IDLE → BETTING → DEALING → PLAYER_TURN → DEALER_TURN → RESOLUTION → PAYOUT) to prevent race conditions. Shipped double down, insurance, and a procedural card renderer — zero image dependencies.
Built a voice-guided letter tracing app for young learners using Canvas stroke detection and the Web Speech API. Supports A–Z, words, sentences, and Chinese characters. Touch event normalization across mouse, touch, and stylus inputs ensures it works on any device.
A 5-reel, 4-row slot machine with 20 unique data-driven themes, a physical drag-to-pull lever, 3D CSS transforms for realistic reel spinning, particle effects for wins, and a "Dad Mode" with adjustable RTP (return-to-player) for family play. The Web Audio sound manager supports per-theme audio packs.
Rapid expansion into puzzle and casual genres: Neon Snake v3 (Canvas + Web Audio + swipe controls), Flow (pipe-connection puzzle with level generator), Sudoku (auto-save, dual input), XTC Ball (magic 8-ball with synthesized speech), Sprunki Mixer (music mixing with character system), and Board Games (Chess, Checkers, Xiangqi with minimax AI). A recurring pattern emerged — duplicated Sound, Input, and Timer systems across games — planting the seed for the NEGEN engine proposal.
Jules performed "The Great Convergence," merging 12+ feature branches into a clean main. Gemini formalized the Visual Identity System and built the Modern Dark Arcade design. Claude established the documentation standard (7 required files per game). Together we shipped a fully revamped root hub with featured hero, Quick Play carousel, responsive game grid, category filters, and mobile bottom-sheet. Catalog grew to 33 games and utility projects.
// team feedback
Real entries from AI_FEEDBACK.md — the inter-agent communication log.
Subject: Phase Retrospective
"The Documentation-First approach prevented knowledge loss between sessions. The federated architecture remains intact despite the massive merge. ES5 discipline is painful but necessary — the arcade runs on old tablets."
Lessons Logged:
ARCHITECTURE.md before coding — prevents context lossSubject: Redesign & Foundation
"The Federated Architecture — games vs. projects — is solid. The separation of concerns works well. My contribution focused on the wrapper: the experience of entering the arcade."
Lessons Logged:
Subject: Phase 2 Visual Integration
"The Modern Dark Arcade design system is live with CSS variables and mobile-first breakpoints. Playwright verification confirmed the responsive grid works perfectly on both desktop and mobile."
Lessons Logged:
// work
Full casino ruleset with split hands, double down, insurance, and a shared card engine. Procedural renderer — zero image files.
Play →3D CSS slot machine with 20 themes, a physical drag lever, particle effects, and adjustable RTP for family play.
Play →Canvas-rendered snake with Web Audio, swipe controls, speed ramping, and neon visual effects.
Play →ES5-refactored Sudoku with auto-save to localStorage, dual input modes, and difficulty levels from Easy to Expert.
Play →Offline-first multi-carrier tracker (DHL, FedEx, UPS, USPS) with IndexedDB persistence, smart rate limiting, and a JSON payload debugger.
Open →Voice-guided writing app with Canvas stroke validation, speed controls, and support for English and Chinese characters.
Play →Pipe connection puzzle. Connect matching colors to fill the board with procedurally generated levels.
Play →Upload any photo and play. Rounded piece shapes with snap sound, lift effect, and drag placement hints.
Play →Enhanced Minesweeper with lives, power-ups, and custom themes. Classic gameplay with modern quality-of-life features.
Play →Classic shedding card game with Hong Kong, Taiwanese, and Singapore rulesets. AI opponents included.
Play →Chess, Checkers, and Xiangqi with minimax AI opponents and alpha-beta pruning for challenging gameplay.
Play →JSON validator, Base64 & URL encoder/decoder, CSV converter, and timestamp tools. Developer utilities suite.
Open →