How I Built This
I'm a Product Manager, not an engineer. This entire website, stock analysis dashboard, pixel art game, interactive resume, was built using AI-assisted development.
Vibe coding isn't about replacing engineers. It's about product leaders who can prototype, validate, and ship at the speed of thought. Prompt → iterate → deploy.
Why I Build
I believe the best way to lead AI transformation is to practice it, not just sponsor it. Inspired by the Feynman technique, I learn by doing: building real products with AI, not just reading about them. These personal projects keep me hands-on with how the technology actually works, how it breaks, and where it creates value. It's the same approach I bring to work, shipping AI products at enterprise scale, and to mentoring other leaders on applied AI adoption.
Tech Stack
Next.js
React framework, SSG
TypeScript
Type-safe codebase
Tailwind CSS
Utility-first styling
Python
Data & valuation engine
Phaser.js
Game engine
Vercel
Edge deployment
v0 by Vercel
AI UI generation
GitHub
CI/CD + issue tracking
AI Toolchain
No single AI does everything well. This site is built with a stack of AI tools, each used where it excels.
v0 by Vercel
UI GenerationInitial page layouts and component scaffolding. Generates production-ready Next.js + Tailwind code from natural language descriptions. Used for the homepage, resume page, and dashboard layouts.
Claude (Anthropic)
Architecture & LogicComplex reasoning, valuation framework design, data pipeline architecture, debugging, and code review. The primary model for backend logic and multi-file refactors.
Amazon Q / Kiro CLI
AI Agent FrameworkAutonomous coding agent that reads files, runs builds, pushes to git, and manages GitHub issues. Handles the full development loop: edit → build → test → commit → deploy.
ChatGPT (OpenAI)
Content & CopyProfessional copy, SEO metadata, and content strategy. Used for resume wording, page descriptions, and keyword research.
How I run products through agents
Every product I ship runs on an operating model I designed: agents with defined roles, gated handoffs, explicit model routing, and automation that runs without me. This is how it works.
The ship flow
One GitHub issue in, one verified live change out. I can rerun it on any issue on demand. Every arrow is a gate, and gates fail closed: a missing check blocks the ship, it never counts as a pass.
- Issue
- Spec
- Build
- Runtime test
- Reviewer
- Deploy
- Verify live
Reviewer finds a problem: back to Build, at most two fix rounds. Still failing after that, the run stops and asks me. Untested items block the deploy.
Model routing
- Claude Opus
- Default for everything: planning, building, reviewing, most analysis.
- Claude Fable
- Pinned only to the hard stages: from-scratch reasoning and red-team passes, where a different model adds real value.
- GPT via Codex
- Implementation of a tightly scoped task, inside a Claude plan and a Claude review.
No single-model dependency: every stage has a defined fallback, so a capacity limit on one model reroutes the work instead of stopping it.
Agents as builders, scripts as runners
An agent is great at figuring out a task the first time and expensive and variable every time after. So once a task repeats, an agent writes it into a deterministic script on a schedule. The script costs zero tokens per run and behaves the same every time. Agents stay at runtime only where the job needs judgment.
What runs unattended
Repeatable work runs on schedules without me, and every scheduled job reports into a weekly fleet review: runs, failures, and interventions, measured rather than assumed.
Trust the output, not the status
An agent's report of its own success is a claim, not evidence. Long-running agent jobs can time out after finishing, or report success on partial work. So critical agent jobs get an independent watchdog: a plain script that checks the real output and self-heals or alerts. Oversight is built into the system, not left to the agent.
Deep Dives
Genkan
ArchivedA free, English, map-first explorer for cheap Japanese property — ~9,900 akiya across 46 prefectures plus court foreclosure auctions. Rebuilt the data pipeline (crawl → geocode → translate → de-ad → enrich) from public government sources.
S&P 500 StockPicker
ArchivedAI-built unified valuation framework analyzing all 503 S&P 500 stocks with DCF, EPV, and quality scoring.
Pixel Art Game
BuildingPokemon-style interactive career exploration built with Phaser.js. Walk through a world that tells my professional story.
Interactive Resume
LiveSEO-optimized resume with JSON-LD structured data, expandable role details, and 50+ products showcase.
MCP Server
LiveA remote Model Context Protocol server that exposes my articles and playbooks as resources and tools, so any AI assistant (Claude, Cursor) can read and search my thinking directly. Built on a Next.js route handler over the site's existing content sources. Connect it from the Thinking page.
503
S&P 500 Stocks Analyzed
50+
Products Catalogued
8
Pages Shipped
0
Built by Engineers
The Process
Prompt
Describe the feature in plain language. Define acceptance criteria like a product spec.
Iterate
AI generates code. Review, refine, test. Multiple rounds until it meets the bar.
Ship
Push to GitHub, auto-deploy to Vercel. Live in minutes, not sprints.