Through my consultancy I build working software for small and mid-sized operators — quoting tools, field apps, scheduling, AI features, automations, and the marketing around them. I use AI-assisted (“vibe”) coding to move at startup speed, and a product manager’s discipline to make sure it holds up in production.
Client names are withheld. Screenshots use sample data or have names, logos, and contact details redacted.
Live in productionWorking prototypeClient proposal
Applications & features
Application · Sales tooling
Dealer quoting platform with a 3D building preview
Live in production
Steel-building dealers were pricing custom buildings from paper flyers and spreadsheets — slow, inconsistent across states, and easy to get wrong.
Pick size & style
Price updates live
See it in 3D
Export order form + customer quote
State-specific price books with snow/wind engineering loads, tax, deposit, and an all-in estimate
Paste rough call notes and AI fills the quote; upload a price flyer and AI extracts the price tables
Saved quote history, side-by-side compare, shareable quote links, and PDF order forms
Distinctive moveBuilt around the dealer's real paperwork: outputs match the manufacturer order form, so a quote turns into an order without retyping.
Public 3D preview — change dimensions, roof pitch, and colors in the browser.Sign-in-gated calculator used by dealer reps.
Application · Field operations
Field-service notebook for a mobile mechanic & welding shop
Live in production
A one-truck repair business kept equipment history, parts orders, and quotes across texts, notebooks, and memory — in places with no signal.
Log the machine
Triage the fault
Track parts on the way
Draft the quote
Export to the books
Seven modules — equipment, service logs, remote triage, parts cross-reference, parts tracking, quotes, route planning
Server-computed quote totals that always stay drafts; deterministic CSV hand-off to accounting
Installable phone app with honest offline state, private photo/PDF attachments, and global search
Distinctive moveZero-trust from day one: Cloudflare Access is the login, every record is account-scoped, and attachments never touch a public bucket.
Shown with sample data.
Application · Healthcare staffing
Shift scheduling for a home-care agency
Working prototype
An in-home care agency filled nurse shifts through group texts — no single view of who covers which patient, and no audit trail of approvals.
Admin posts a shift
Nurses get a text
A nurse claims it
Admin approves in one tap
Coverage calendar updates
Phone-number-plus-code login for nurses — no passwords to forget
Each nurse sees only their own shifts; admins see the whole month and the approve queue
Patient coverage timeline and an SOS board for last-minute call-outs
Distinctive movePrototype first, so the owner could tap through the real flow before a line of backend was written — then rebuilt as a production app on Cloudflare Workers + D1.
Interactive preview with sample data — no real patients or staff.
Feature · AI imagery
"See your home lit" AI visualizer with an instant ballpark
Live in production
Holiday-lighting buyers can't picture the result, and the installer spent evenings driving out to give quotes that often went nowhere.
Upload a photo of the house
Pick a light style
AI renders the home lit
Get a ballpark and book
Nine popularity-ordered styles, switchable after the render without re-uploading
Choose what to light — roofline, palms, trees, stakes, garage — plus free-text requests
Itemized ballpark range built from the installer's real per-foot and per-tree rates
Distinctive moveThe estimate is deterministic, not generated: rates were validated against real past jobs so the AI picture never promises a price the owner won't honor.
Application · Logistics
Offline-first shuttle operations app
Working prototype
A truck-and-trailer shuttle service runs on remote rivers where there's no cell signal — bookings and drop-off locations lived in phone calls.
Customer books
Driver runs the day
Photo at drop-off
Operator steps in only on exceptions
One app, three roles — customer, driver, operator — switchable with tabs
Works in airplane mode; status updates and photos sync when signal returns
Installable to the home screen like a native app
Distinctive moveDesigned for zero bars first: the demo is meant to be tried with airplane mode on.
Sample data; texts are simulated.
Metal-panel takeoff estimator
Working prototype
Reads vector CAD elevation PDFs, lays out panels around every opening, and outputs dimensioned plots, cut lists, and CSV/JSON — tested line-by-line against the fabricator's own reference reports. No screenshot: the source drawings are confidential.
Branded presentation generator
Live in production
Upload a company deck or PDF; it extracts colors, fonts, logo, and disclaimer, researches the topic, and builds a new on-brand PowerPoint with charts.
Websites
Website · Local service business
Small-business sites built to generate calls
Live in production
Owner-operators need a site that looks established, ranks locally, and turns a visit into a phone call or quote request — without a monthly agency retainer.
Fast static or edge-hosted builds on Cloudflare and Vercel, with real job photos and verbatim reviews
Lead forms with spam honeypots, routed to email and SMS, and checked daily by synthetic monitoring
Service-area pages, local SEO structure, and DNS/email deliverability set up without breaking existing mail
Distinctive moveConcept sites are pitched before they’re sold: owners click through a working version of their own business, then we iterate on their feedback.
Business name and phone number redacted.
Automations
Lead routing that can't get lost
Live in production
Web form
Spam honeypot
Email to owner
Text to owner's phone
Every quote request lands in the inbox and as an SMS within seconds, with reply-to set to the customer.
Synthetic site & form monitoring
Live in production
Hourly uptime + content check
Daily honeypot form POST
Alert email
GitHub issue
Every client site and lead form is exercised automatically — without sending a fake lead — so I hear about a break before the client does.
Client-context indexing
Live in production
Message thread
Screen recordings
AI transcription
Searchable brief
Feedback that arrives as texts and screen recordings becomes a searchable index, so a client never has to repeat a request.
AI document extraction
Live in production
Price-flyer PDF
Vision model
Structured price table
Reviewed, then live
Manufacturer price flyers become structured pricing data instead of hours of hand entry — with a human review step before anything goes live.
Marketing support
Marketing · Paid social
Problem-first ad creative and capped 14-day tests
Client proposal
Small contractors burn money on boosted posts. I package ad creative, targeting, and a hard-capped test plan the owner can approve ad by ad.
Ad copy that opens on the customer’s problem, paired with real job photos or clearly labeled AI renders
Small capped budgets, a day-7 check, and scale-or-kill at day 14 on cost per lead
Instant-form leads routed to the owner by text so they get called back within minutes
Distinctive moveEach ad has its own Approve / Request change control, so the owner signs off on exactly what runs.
Proposal mockups; engagement counts removed.Lead range is a benchmark-based projection, not a reported result.
How I build
Requirements before code
Every client ask becomes a Given/When/Then requirement; every commit cites it.
Parallel AI agents
Multiple coding agents work isolated git worktrees at once; I review and merge.
Verified on the live site
Done means proven on the production URL — smoke tests and screenshots, not a green build.
Security defaults
Platform auth (never hand-rolled), secrets in 1Password, credential scans before every commit.
Model routing — the right model for each job
Live research — regulations, jurisdictions, current docs