
Self-taught, AI-native. I shipped SceneOne, a live AI screenplay feedback tool — solo. Learning more every day.

Self-taught, AI-native. I shipped SceneOne, a live AI screenplay feedback tool — solo. Learning more every day.
The $100 coverage fee gatekeeps writers by wealth. SceneOne gives every writer studio-grade AI notes across 5 craft dimensions. Built and shipped solo — live at sceneone.net.
One app. Every promotion. All the fights. A personal combat sports hub that pulls live fight cards, fighter stats, and broadcast info from UFC, Boxing, PFL, and ONE into one clean interface.
Little Caesars has the best value in fast food — but their app makes it feel like a chore. I redesigned the full ordering flow: Hot-N-Ready real-time availability, a smarter menu, and a checkout that actually trusts the user.
A lifetime concert diary for die-hard live music fans. Log every show you've ever attended — no ticket, no proof needed. Conceived at a Black Queen show. 14 MVP screens built.
Every product starts with a real problem. I identify pain points, map the experience, and define what success looks like before a single screen is designed.
UI/UX decisions are deliberate. I think in flows, not just screens — prioritizing clarity, delight, and the moments that make users come back.
I use Claude, ChatGPT, and the full AI stack as a development partner — directing, iterating, and building real products faster than traditional workflows ever allowed.
I’m self-taught, AI-native, and I build things. Most recently SceneOne — a live AI screenplay feedback tool that gives every writer studio-grade notes without the $100 coverage fee. Designed, engineered, and shipped solo.
I’ve watched real people get frustrated by bad software my whole career. That frustration is why I design — products built for the user, not the developer.
When I’m not designing: combat sports, live music, cooking for my wife, and wrangling my nintendogs Eevee and Bowser.
Open to freelance, full-time, and fellowship opportunities.
Scrapbookers don't have a home. GoodNotes hits a 3-file wall immediately. Canva is a marketing tool — its layers are broken and its best templates are paywalled. Unfold exports to Instagram only, meaning a 100-page family scrapbook literally cannot be sent to grandma. Pic Collage forces watermarks on finished work and sits at a 3.9★ rating from a frustrated user base. Every competitor optimizes for the wrong output.
People aren't making scrapbooks to post on Instagram. They're making them to keep, share with family, and print. That realization — that every competitor is solving for social media virality instead of personal memory — is the product foundation everything else is built on.
Two personas drive every design decision. The Memory Keeper: women 25–45 making scrapbooks for weddings, milestones, travel, and holidays — currently duct-taping together GoodNotes and Canva and physical craft supplies, none of it feeling right. The Gift Maker: people building scrapbooks as gifts, who care deeply about the finished output looking polished and need to actually send it to someone.
The design went through three distinct stages before the current prototype. The first pass focused purely on the canvas layer model — getting the stacking order right before any visual polish. The second pass established the emotional tone: warm craft textures, Playfair Display typography, the "paper feel" that separates Scrap'd from every generic grid editor. The third pass locked the onboarding flow — the decision to get users into creation in under 60 seconds, skippable everywhere, no account required.
Every page is a 6-layer GPU-rendered canvas via react-native-skia. Layer 1: background paper. Layer 2: photos. Layer 3: stickers and washi tape. Layer 4: typed text and journaling. Layer 5: Apple Pencil or finger drawing with pressure sensitivity. Layer 6 (Tier 2): video and GIF. Nothing is destructive. Unlimited undo. 60fps target on iPhone 12 or newer — non-negotiable.
Full PRD complete across all 12 feature specs: library, canvas, photo import, stickers, washi tape, background papers, text, drawing, templates, sharing, onboarding, and offline architecture. Login and onboarding prototypes built. Design system established. Tech stack confirmed. Asset licensing strategy defined. Next phase: resolve 10 open questions in the PRD, then developer handoff spec.
My wife had her gallbladder removed. Overnight our cooking had to change — certain fats and ingredients were suddenly off the table. Every recipe app we tried was built for a single person with no restrictions and unlimited pantry access. None of them understood that real households are complicated: multiple people, medical needs, dietary preferences, and a fridge full of things you bought three days ago and forgot about. So I started building the app I actually needed.
OurTable went through four distinct phases. V1 ran on-device — dark mode, real navigation, real data, proof the system worked. V1.5 explored light vs. dark formally in a design system mockup — light mode won because the app needed to feel like a kitchen, not a command center. V2 introduced the navy/cream/gold palette, full cooking mode, household architecture, and the Family Recipe Book. V2.1.0 — the current build — adds Party Mode, aisle-organized grocery lists, pricing tiers, and the full platform vision.
"Who's at your table?" — during onboarding you add household members and set dietary preferences per person: Dairy-Free, Gluten-Free, Vegetarian, Halal, Kosher, and more. Every recipe surfaces conflict warnings per member. The household gets its own stats dashboard: shared recipes, meals cooked, lists created, food waste saved. My wife's gallbladder recovery isn't an edge case — it's the product thesis.
The platform's emotional core. "The Wilson Family Recipes — collected with love since 2024." Every household gets a shared recipe book organized into chapters: Weeknight Favourites, Emma's Kitchen, Grandma's Classics, Quick & Healthy, Special Occasions. Members can each contribute recipes to shared chapters. 60 shared recipes, each with personal notes, cook count, and star ratings. This is the feature that turns a utility into something people feel attached to.
Set your guest count and every recipe scales automatically. Hosting 12 people? Every ingredient quantity recalculates in real time. One tap generates a scaled grocery list for the entire meal. No other recipe app has this. It emerged from real household need — and it's the feature that consistently surprises people when they see it.
Scan your fridge — AI detects and catalogs ingredients across Fridge, Pantry, and Freezer tabs. "What Can I Make?" ranks recipes by match percentage: 95% means cook now, 85% means add one item. Expiring items get prioritized automatically. Food Waste Mode shows exactly how much money you've saved cooking what you have. The grocery list organizes by aisle — Produce, Meat & Fish, Dairy — not a flat list. Add an entire recipe's ingredients with one tap.
Light mode vs. dark mode: V1 launched in dark mode because it felt premium and modern. V1.5 formally tested both. Dark mode lost. The insight: recipe apps are used in kitchens under warm lighting, often handed to another person to read. Dark mode felt like a command center, not a kitchen. Light mode with the navy/cream/gold palette felt like a cookbook. Emotional context overrode aesthetic preference.
Household-first vs. individual-first onboarding: Most apps onboard the individual and bolt on household features later. We inverted it — the first question is "who’s at your table?" The tradeoff is a slightly longer onboarding flow. The payoff is that dietary conflict warnings work from the first recipe and the app immediately feels like it was built for your household, not adapted for it. Complexity upfront, simplicity forever after.
One-time payment vs. subscription: The Plus tier is $9.99 one-time, not monthly. The decision came from product values — a recipe book should feel like something you own, not something you rent. Subscription fatigue is real, especially for utility apps used daily. A one-time payment builds more trust at the point of purchase and reduces churn to zero for that tier.
Retention by design: A household that builds a shared recipe book doesn’t churn. The Family Recipe Book is both a feature and a lock-in mechanic — the more a household contributes, the more irreplaceable the platform becomes. This is the difference between a utility someone deletes after a week and a platform that earns a permanent spot in the household.
Three tiers designed from first principles. Free: up to 30 recipes, basic grocery list, fridge scanner 5x/month, 1 member. Plus at $9.99 one-time: unlimited saves, URL and social import, unlimited fridge scanning, cooking mode, cost tracker, Family Recipe Book. Household at $19.99/year: everything in Plus, up to 6 members, shared grocery lists, dietary conflict warnings, household stats, and web access at recipebook.ourtable.app. No ads. No subscriptions on the core tier. Yours forever.
The next layer is a weekly and monthly meal planning calendar powered by your own saved recipe database — the more recipes you add, the smarter your suggestions become. A personal data flywheel that makes the platform more valuable the longer you use it. A senior developer reviewed the architecture and joined as a collaborator. The foundation is built to scale there.
Built in React Native using Expo, running on both iOS and Android. Camera integration powers the fridge scanner. Navy, cream, and gold palette with full light and dark mode. Web access planned at recipebook.ourtable.app for Household plan members.
I work helpdesk at a nationwide company — four people covering the entire org. Every day the challenge isn’t the work itself, it’s knowing what to handle first. I saw the same problem everywhere at SMBs: no dedicated IT staff, tickets piling up, no intelligent layer to sort signal from noise. So I started building one.
TriageAI is an AI-powered Tier 1 helpdesk subscription platform for small businesses. The system handles first-response, classifies and routes tickets, attempts resolution via a knowledge base, and only escalates what actually needs a human. Built for teams of zero to four — not enterprise IT departments.
Before writing production code, I built a full outreach system — prospect tracker, cold email sequences, follow-up cadences — and ran campaigns across law firms, dental offices, insurance agencies, and accounting firms in the LA area. 40+ businesses contacted. That outreach generated real market signal about messaging, pricing sensitivity, and the verticals most likely to convert first.
The average SMB spends $1,500–$4,000/month on a part-time IT contractor. TriageAI’s $400 entry tier replaces that spend entirely. The financial model shows profitability at 5 clients on the Growth tier — a realistic first-year target for a one-person operation. The pitch isn’t “try AI helpdesk.” It’s “cut your IT spend by 70% and never miss a ticket.”
Alongside validation I built: a working interactive demo (v4), a break-even calculator modeling the $400/$650/$999 subscription tiers, a full system wireframe covering Phase 1 and Phase 1.5, and a GitHub research checklist for the technical build. The financial model shows profitability at 5 clients on the Growth tier.
Phase 1 — TriageAI Core: Internal IT helpdesk for SMBs. AI handles Tier 1 resolution, escalates only what needs a human touch. Monthly health reports for owners.
Phase 1.5 — ClientDesk: Client-facing inbound triage. AI acknowledges instantly, classifies and routes to the right staff member, escalation timers prevent anything from falling through.
Phase 2 — Security Layer: Proactive monitoring, threat detection, and compliance reporting for SMBs who can’t afford enterprise security tooling.
A personal trainer with a genuinely unusual differentiator: he cosplays. Not as a side hobby kept off his brand — as a core part of who he is. Every agency he approached wanted to sand that down and give him a generic fitness brand. I did the opposite.
A complete brand identity system built from scratch: brand foundation and voice, visual identity with color palette and logo direction, content strategy with 4 content pillars, weekly posting framework, 90-day content calendar, 30 done-for-you caption templates, client onboarding kit, 4 fillable workout program templates, and a 50-prompt AI pack for Claude and ChatGPT.
The brand leans into the cosplay identity completely. The name, voice, visual direction, and content strategy all treat it as the differentiator it is — not something to hide. A trainer who cosplays isn’t a liability. It’s the entire hook. The clients who connect with that identity become the most loyal ones.
The client hasn’t activated the brand online yet. Rather than let the work sit idle, the system was generalized and productized — the full kit is now available as a digital download for personal trainers on Gumroad and Etsy. The same deliverables built for one client now serve an entire market.
Iron Arc is proof of two things: that the best brand work comes from listening to who the client actually is, and that good systems are worth more than one use. The work shipped. The pivot shipped. Both count.
News articles bury the actual point. Headlines lie or sensationalize. TL;DR summaries give you five bullet points when you needed one sentence. Nobody has time to read 800 words to find the thing that actually matters.
Paste any article, long email, press release, or wall of text. Briefed calls the Claude API and returns the essential truth of what you just read — in exactly 15 words or less. Not a rewrite of the headline. Not a bulleted summary. The one core claim the whole piece is really about.
The 15-word constraint is the product. It forces precision in a way that "summarize this" never does. Playfair Display gives it editorial credibility — it should feel like a sharp editor, not a chatbot. The dark UI with yellow-green signal color (`#e8ff47`) creates a signal-vs-noise visual language that reinforces the core idea.
The 15-word constraint didn’t come from intuition — it came from failure. Early prompts returned summaries that were technically accurate but 40–60 words long. They weren’t wrong, they were just useless for the use case. Tightening the constraint surfaced a new failure mode: the model started truncating instead of distilling, cutting off context rather than identifying the core claim. The final prompt architecture separates those two jobs — first identify the single most important claim, then express it in 15 words or fewer. The constraint is the product. The prompt engineering is what makes it work.
You sent the wrong tone and now the whole conversation is off. Or you didn't send anything at all because you couldn't figure out how to say it. Texts, emails, Slack messages — the register matters as much as the words, and most people don't have a second set of eyes on demand.
Paste any message — a frustrated text, a passive-aggressive email, something you typed in a heated moment — and ReplyRight returns three rewrites simultaneously: Calm (de-escalates, neutral), Warm (relational, empathetic), and Assertive (direct, no softening). Same point, three different registers. Pick the one that fits.
Three results served at once instead of asking you to pick a tone first — comparison is the whole value. Color-coded left borders (blue / amber / red) let you scan the register before you read the words. Light UI so the tool disappears into the workflow rather than demanding attention. The app icon and branding stay minimal because this is a utility, not a statement.
The hardest prompt engineering problem in ReplyRight wasn’t generating three tones — it was preventing the model from being sycophantic in Warm mode and aggressive in Assertive mode. Early outputs had Warm rewriting the user’s point entirely to avoid conflict, and Assertive dropping all empathy in ways that would escalate rather than resolve. The fix was explicit constraints per tone: Warm preserves the core message and adds relational acknowledgment; Assertive keeps the point but removes apology language only. Same message, calibrated register — not a different message per tone.