Skip to content
Built with AI

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 Generation

Initial 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 & Logic

Complex 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 Framework

Autonomous 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 & Copy

Professional 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.

  1. Issue
  2. Spec
  3. Build
  4. Runtime test
  5. Reviewer
  6. Deploy
  7. 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

Archived

A 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

Archived

AI-built unified valuation framework analyzing all 503 S&P 500 stocks with DCF, EPV, and quality scoring.

Pixel Art Game

Building

Pokemon-style interactive career exploration built with Phaser.js. Walk through a world that tells my professional story.

Interactive Resume

Live

SEO-optimized resume with JSON-LD structured data, expandable role details, and 50+ products showcase.

MCP Server

Live

A 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.

Deep-dive coming soonView live →

503

S&P 500 Stocks Analyzed

50+

Products Catalogued

8

Pages Shipped

0

Built by Engineers

The Process

01

Prompt

Describe the feature in plain language. Define acceptance criteria like a product spec.

02

Iterate

AI generates code. Review, refine, test. Multiple rounds until it meets the bar.

03

Ship

Push to GitHub, auto-deploy to Vercel. Live in minutes, not sprints.