I'm a hands-on technical product manager working in B2B SaaS for the cyber-insurance
market. I own the full software development lifecycle for a multi-product platform —
gathering requirements, writing and assigning the work, running QA and code review, and
shipping to production.
Over the past few years I've taken multiple products from 0 to 1 on a modern
Python and Vue 3 stack, integrating large language models (OpenAI and Anthropic Claude) and
external threat-data sources into shipped features. I lead a small distributed engineering and
QA team across several time zones and act as the central coordination hub where engineering,
customer success, and sales converge.
What I like most is being technical enough to build it and product-minded enough to
know what's worth building — translating fuzzy business needs into a prioritized,
well-scoped roadmap, then seeing it through to the release notes.
selected work
Things I've shipped and led
Internal AI knowledge system 0→1
Self-initiated · adopted org-wide
Designed and built an automated knowledge ecosystem that captures org meetings, logs
documentation, and recalls institutional knowledge on demand — drafting user stories and
answering questions across departments. Connects Microsoft Teams, Claude, Confluence,
and Jira. Saves the team several hours every week.
Took multiple products from concept to production, owning backend development, data
ingestion, report and output design, deployment, and DevOps. Shipped 49+ production
releases on a steady cadence with maintained changelogs, while adopting AI-assisted
development to take on hands-on engineering across the stack and reduce delivery
cycle time.
PythonVue 3PostgreSQLAWSRelease mgmt
Flagship platform UI & reporting redesign
Design through customer rollout
Led a full UI and reporting redesign of the flagship product, owning the work from design
and wireframes through implementation and the customer-facing release — improving how
security and privacy risk findings are presented to underwriters and policyholders.
Product designFigmaData viz / reporting
personal projects
ARP — Auto Reel Pipeline
Multi-agent AI system · designed & shipped solo
A multi-agent pipeline that turns a single topic into a fully produced, published
short-form video — research, scripting, voiceover, image generation, animation,
assembly, and multi-platform publishing. End-to-end cost lands around $0.38 per video.
What it does
Given a topic from a queue, ARP autonomously produces a vertical 9:16 video of
roughly 50 seconds — tuned for YouTube Shorts, Reels, and TikTok — and publishes it
with SEO-aware titles, descriptions, and hashtags. The intent was a hands-off content
channel where my role is strategy and oversight rather than per-video production.
End to end, a run lands around $0.38 and 5–8 minutes of wall-clock time.
Hub-and-spoke: every stage reports to the orchestrator — agents never call each other directly.
Orchestrator + ten specialist agents
The system is one orchestrator that owns the lifecycle of a run, plus ten stateless
specialist agents that each do exactly one job and return structured output. No agent
makes global decisions or calls another agent directly — everything flows through the
orchestrator, which stays a "conductor, not creator": it never writes a script or
generates art itself. It holds a single source of truth (RunState), calls each agent in
sequence, validates every output, retries once on failure, and finalizes the run as
published, partial, or failed.
The pipeline
Eleven stages run in order: lock the next queued topic, load the channel's identity
(tone, art style, voice persona), gather a few verified facts, write a hook-first 120–180
word script, narrate it with ElevenLabs TTS, break it into three to five visual scenes,
generate one 9:16 image per scene under a strict no-text rule, animate each into a short
clip, assemble everything in FFmpeg to within a second of the voiceover, publish to each
platform over OAuth, and log status, URLs, and cost back to the datastore.
Engineering decisions that keep it reliable
Standard agent contract. Every agent inherits a BaseAgent class and returns the same JSON shape — success, data, warnings, errors — so any provider (image, voice, video) is swappable without touching the orchestrator.
State as truth. A RunState object tracks every artifact and per-step retry count; the orchestrator refuses to advance a stage without the inputs it needs.
Hard-constraint gates. Platform rules — 9:16, ~55s, no text in generated images — are validated at each step rather than assumed, because generative models drift. A failed check triggers one corrective retry before the run is marked partial or failed.
Mock mode. Every external integration has a mock, so I can exercise the full pipeline end to end at zero API cost before spending real money.
Declarative channels. Each channel is defined in YAML — tone, palette, voice, schedule, guardrails — so adding a channel is configuration, not code.
Graceful degradation. Platform uploads are independent: if one fails, the run still reports partial rather than discarding a finished video.
Stack
Python orchestration and RunState management, Anthropic Claude for research and
scripting, ElevenLabs for text-to-speech, DALL·E 3 for images, FFmpeg for assembly and
audio normalization, and the YouTube Data API with OAuth2 for publishing.
Built with AI-assisted development — architecture and product decisions are mine.
An automated stock-screening and analysis platform built on a multi-model agent
hierarchy: a Claude orchestrator handling decisions, with cheaper specialist agents
running data sync, screening, backtesting, and performance tracking on schedule.
What it does
A fully automated swing-trading research system for a small account. It screens a
24-symbol watchlist every trading day, looks for one of three technical entry setups,
sizes each position by conviction, and delivers formatted recommendations to my phone
over Telegram — backed by automated data syncing, weekly backtest validation, and
performance tracking. It runs on OpenClaw, an open-source runtime for local AI agents
with shell, filesystem, cron, and sub-agent tooling.
A model-tiered agent hierarchy over a shared-memory file, a local data store, and the broker API.
Multi-model agent hierarchy
A Claude Sonnet main agent handles the work that needs real reasoning — orchestration,
strategy decisions, the morning analysis, and all user-facing communication. Cheaper
Gemini Flash sub-agents handle the routine, well-defined jobs on schedule: data syncing,
backtest validation, performance tracking, intraday screening, and the nightly review.
Routing reasoning to the expensive model and rote work to the cheap one cut operating
cost roughly 35% (about $12.50/month versus $19 all-Claude), and giving each sub-agent
only the files it needs trims token use further.
Strategy engine
The strategy fires on one of three setups — a support bounce, an RSI oversold recovery,
or an uptrend pullback — each with mechanically calculated stop, target, and a minimum
1.2:1 reward-to-risk filter. The notable piece is conviction-based position sizing:
instead of a fixed bet, risk scales with the RSI reading at entry (4% of the account on
deeply oversold setups down to 2% on weaker ones). That single change improved backtested
return about 60% over flat 2% sizing, because the most profitable historical trades
clustered on the lowest-RSI entries.
Empirical method
A local SQLite store of 44,000+ daily bars makes iteration fast and offline, so I could
sweep 36 parameter combinations in a single session rather than hammering the API. The
strategy that shipped is the one that survived that testing — and an equal part of the
work was rejecting approaches that looked good on paper. A 100-point scoring system lost
money; an MACD filter raised win rate but killed 89% of trade volume and dropped profit
82%; trailing stops got chopped out of volatile names. Three simple signals beat all of
them.
Shared memory & stateless agents
All agents coordinate through a single Markdown file holding the live strategy
parameters, baseline metrics for drift detection, the nightly market outlook, and a
timestamped change log. Because state lives in that file rather than a conversation, any
agent can be spun up fresh, read it, and act with full context — which is what makes the
scheduled sub-agents reliable.
Safety by design
The system is report-only: it recommends, but a human places every order, which has
consistently produced better entry prices than the system's own. Sub-agents run under
hard guardrails — no strategy changes without main-agent approval, paper trading only,
API keys never written to logs, and forced escalation when performance drifts more than
10% from baseline. Across the first five closed trades on real capital it hit its targets
for about +$137 (a small sample worth reading as a track record in progress, not a
projection).
Built with AI-assisted development — architecture and product decisions are mine.
Own the end-to-end SDLC for a multi-product platform and lead a distributed engineering and
QA team. 0→1 delivery across multiple products on a
Python / Vue 3 / PostgreSQL / AWS stack with integrated LLMs and external
threat-data feeds.
Cybersecurity Product Manager — Ford Motor Company
Remote · 2022
Primary liaison between enterprise product, legal/privacy, and external regulators
(CA, UK). Led remediation of 1,000+ critical noncompliant cloud resources during an
AWS-to-GCP migration, cutting monthly infrastructure spend by $5,000+ and resolving
compliance issues ahead of deadline.
Foreign English Teacher — Alphabelle American School
Taipei, Taiwan · 2017 – 2020
Designed and delivered adaptive curricula for students aged 3–17, managed classes of up
to 20, and mentored new teachers.
Education
Kenzie Academy & Ball State University
Full-Stack Software Engineering Certificate — Kenzie Academy (Butler University / SNHU),
2021. B.S., International Business — Ball State University, 2015.
contact
Let's talk
I'm always happy to connect with people building thoughtful software. The fastest way
to reach me is LinkedIn — and I'd be glad to share more detail on any of the work above.