Technical Product Manager · Builder

A product manager who ships the software he manages.

I work where product decisions meet hard technical constraints: data platforms, ML systems, and cross-platform apps. I design, ship, and operate the software I manage.

Product judgment sharpened by knowing what the work actually costs.

Portrait of Michael S. Huang Open to full-time TPM roles

Track record · what shipped

8

LLM-powered product features, from spec to rollout.

12×

faster intraday cost & revenue reporting, from a new-generation OLAP pipeline.

700+

marketing automations running on the Scripts platform I shipped.

30

person engineering team I led in Shanghai, across five ad platforms.

Selected work · 01

Stream of Worship

Chinese worship teams have no tooling for the space between songs. I designed and built the system that turns a song list into a seamless, offline-capable worship set — one continuous audio file plus a lyrics video with chapter markers.

Read the case study →
  • Transition quality is a boundary problem. Compatibility is judged on the key a song leaves through versus the key the next one arrives through, plus boundary BPM — not whole-song averages.
  • Worship practice encoded as constraints. Sets follow a fixed five-phase arc; a beam-search constructor runs constrained search with a scored objective over the whole catalog.
  • Domain priors beat generic models. Worship BPM priors plus a lognormal prior from lyrics characters-per-second resolve the octave errors that fool off-the-shelf tempo estimators.
  • A serverless render pipeline. Crossfaded MP3s and ~29,000-frame lyric MP4s render in an AWS Lambda container triggered by SQS, with progress streamed to the browser.

More work

Two more products, two more constraint sets.

Claude agent skill

googleads-analyst-skill

A Claude agent skill that runs period-over-period Google Ads analysis, root-causes anomalies against change-event history, and applies approved mutations — with guardrails at every irreversible step.

60+ GAQL fields validated across 12 resources before shipping.

Agent skillsmcc-gaql CLIPrompt engineering
Rust · RAG

mcc-gaql-rs

Three Rust CLIs for querying, mutating, and LLM-generating Google Ads GAQL across MCC child accounts — with a RAG pipeline that knows the API schema better than a generalist model.

Natural language → GAQL in ~3–4 s end to end.

Rusttonic gRPCPolarsLanceDB + ArrowCloudflare R2

How I work

Three habits that survive contact with a real codebase.

Start from the frustration, not the feature request

When customers ask for faster horses, I focus on the core frustration and solve the parts that don't drag in expensive technical risk.

Design around the constraint

Venue Wi-Fi, messy catalogs, free-tier budgets — constraints are the spec. I design the product around them instead of assuming them away.

Ship the proof

Pick a real problem, design around the user's constraints, then ship the code, the infrastructure, and the evaluation loop that proves it works.

Experience

One through-line across every role: stay close to the implementation.

2022 – 2025

Technical Product Manager

Shipped an AI chatbot with three specialized sub-agents on Azure OpenAI, a Scripts platform running 700+ marketing automations, and ML anomaly detection across hundreds of campaigns.

Product
2012 – 2022

Marin Software — Technical Lead → Director → Senior Director of Engineering

Built search features across five ad platforms, led a 30-person Shanghai team, and delivered an OLAP pipeline that made intraday cost and revenue reporting 12× faster.

Engineering
Before 2012

Trilogy · MetLife · Morgan Stanley

Underwriting automation, trade-processing tooling, and anti-money-laundering systems — plus my own offshore engineering consultancy in Shanghai.

Earlier
Degrees

Cornell (M.Eng.) · UC Berkeley (B.A. Physics)

An engineering master's and a physics degree — and a lasting habit of building the thing, not just specifying it.

Education

Writing

Notes from building in public.

Read all posts →

Contact

Hiring a TPM who can read the code?

Tell me the problem your team is stuck on. I'd rather walk you through the work than describe it. Reach me at [email protected].

Start the conversation