I am a strategist who ships. I start from a messy, real-world problem, design the full solution across data, model, and product, and then build and deploy it myself. The rare part is not any single layer, it is owning the whole line from idea to a running system.
No one assigned these projects. I taught myself to build so that my strategy would never stop at a slide, and I shipped every one of them on my own initiative, from first idea to live system. That is the lens I bring to a team: turn an ambiguous problem into something real, without needing it scoped first.
Multi-tenant AI operations assistant
Small teams drown in status updates, email, and dropped follow-ups. The goal was a backend that quietly triages all of it per account and surfaces only what matters.
A multi-tenant backend that runs scheduled background jobs for each account: it classifies inbound email, extracts structured action items, and generates daily and weekly summaries delivered over Slack, email, or Telegram.
A single timezone-aware tick loop schedules every tenant's jobs without a cron daemon. The LLM pipeline treats model output as untrusted: every call has a typed contract, defensive JSON parsing, and a safe fallback, so no model response can crash a worker. User-defined rules run before the model to cut cost and latency, and every extracted item carries a source reference so the pipeline stays idempotent on re-runs.
Where the real leverage in an AI product sits. It is rarely the model call itself, it is the decisions around it: what to automate, where to keep a human in the loop, and how to keep the whole system trustworthy and cheap enough to actually run.
Personalized wholesale outreach at scale, human-reviewed
Generic outreach to wholesale retailers gets ignored. Personalizing it by hand does not scale. The goal was relevance at volume, without crossing into spam.
A tool that researches a retailer, drafts outreach tailored to that specific store, and keeps a human in the loop to review before anything goes out.
A Supabase-backed pipeline assembles context about each retailer, then prompts an LLM to generate tailored copy under explicit guardrails. The design keeps generation auditable and reviewable, so a person approves the output rather than the system sending autonomously.
Prompt design for genuine personalization rather than mail-merge, and the responsible-AI side of outreach: transparency, review gates, and not automating away human judgment where it matters.
AI-generated, search-optimized listing copy from live data
Amazon sellers lose sales to poorly optimized listings, but rewriting titles, bullets, and descriptions for search and conversion is slow and inconsistent.
An engine that pulls a live listing, analyzes it, and generates optimized copy structured to Amazon's fields, with a clean web app around it.
It fetches real listing data through a product-data API, feeds that context to an LLM, and returns structured output mapped directly to each listing field. The app runs on Next.js with PostgreSQL, and payments are handled through Stripe.
How to combine an external data API with LLM generation reliably, how to coerce free-form model output into a strict schema the product can consume, and how to judge generation quality rather than trusting it.
TypeScript, JavaScript, Node.js, Next.js, SQL
LLM agents, prompt engineering, structured output, reliability and fallback handling, the Anthropic Claude API
PostgreSQL, Supabase, SQLite, Docker, Railway, Hostinger, self-hosted VPS
Gmail, Slack, Google Calendar, Stripe, third-party data APIs, OAuth