Color theme
Andrew Lepard · Product Engineer · Denver, CO · works remote

I turn messy operational problems into software people depend on.

I'm an AI-native product engineer. Last spring, I built a lead-response platform for home-service businesses called Prentice. I took it from a blank page to production in under two months, using AI agents to help build it while I made the product decisions, tested the workflows, and worked through bugs at every stage. It's been answering real leads for a real business every day since.

prentice.pro

A lead comes in after hours. My software responds in seconds.

How Prentice moves a lead
from inquiry to customer.

Step 01LEAD IN

9:12 PM. A homeowner submits a quote form.

LEAD IN9:12 PM. A homeowner submits a quote form.
PARSEDDetails extracted into a clean record.
FIRST TOUCHReply sent in seconds, automatically.
SURVEYRooms, photos, square footage come back.
ESTIMATEThe owner sends the quote with one click.
WONBooked. A biweekly recurring customer.

Home-service businesses work hard for leads, then lose momentum through delayed responses. The client I was working with had response delays ranging from a few hours to a few days. With Prentice, the first response now goes out in seconds.

When a new lead comes in, Prentice creates a clean lead record and sends a first reply immediately. It gathers property details and photos through a quick survey, creates a ‘send estimate’ task with everything attached, and intelligently handles timely follow-ups.

What makes it trustworthy

A durable foundation underneath

A carefully designed database where every customer's information is completely walled off from everyone else's.

Built to respect the customer

The first reply with the survey link can send at any hour. Routine messages send only between 8 AM and 9 PM, do-not-contact lists are enforced, and emails that fail to deliver surface before a lead is left waiting.

The demo below is a simplified but faithful version of the real product. Follow a new lead through the workflow and see how the system responds.

Enter the live demo →Look under the hood
Preview of the simulated Prentice dashboard

AI-native, human-directed.

I work with AI agents, Codex and Claude Code, every day. They help me move faster, but I set the direction, and nothing ships until I've reviewed it, tested the edges, and walked through the workflows myself on desktop and mobile. This site was built the same way, by a small team of AIs I directed.

Four decisions from building Prentice, and the reasoning behind them. This is what my judgment looks like in practice:

01

Tasks that reflect reality

In Prentice, a task only completes when the work actually happens. Sending an estimate completes the estimate task, so the owner can trust the pipeline without maintaining it by hand.

02

Texting, held for the right moment

The foundation for customer texting is built, including consent handling, but automatic texts are currently off. Instead, Prentice creates a task for the owner, keeping the customer relationship and the decision to send in the right hands.

03

One email means one email

A customer should never receive the same follow-up twice. Before retrying, Prentice checks whether that email is already recorded as sent. If it is, the system marks the work complete instead of sending another copy.

04

Self-healing, without guessing

When something drifts out of place, overnight maintenance rebuilds it from the permanent event history. If the system cannot verify the right fix, it flags the issue for review instead of quietly making something up.

AI with boundaries.

SupportIO runs customer support for Prentice. It reads the support inbox, organizes messages into tickets, watches product health, and uses AI to give each ticket a priority, a short factual summary, and one suggested next step. Just as important is what it deliberately doesn’t do. It never replies to a customer on its own, and if the AI is unavailable, the rest of the support workflow keeps moving.

Useful AI has the right job, the right context, and the right level of autonomy.

SupportIO
Illustrative example

Incoming message

I tried sending an estimate twice, but I got an error both times. I’m not sure whether the customer received it.

AI summary

The owner reports repeated errors when sending an estimate and is unsure whether it was delivered.

Suggested next step

Check the delivery history and tell the owner whether the estimate was sent. Investigate the error, fix the cause, and verify that sending works.

Boundary

I review the suggestion and decide how to respond. The AI never replies to the owner on its own.

One codebase. Every pocket. Even your wrist.

Prentice ships as a web app and dedicated iPhone and Android apps, all built from one shared codebase. When it’s time to send an estimate, a notification and direct link put the right lead within reach on a phone, desktop, or the watch on the owner’s wrist. Designed, built, and shipped by me.

The next step, ready everywhere at once.

For fun, I built our house a morning briefing.

There's an Apple TV in our bedroom running a dashboard I wrote in SwiftUI, connected to the smart-home system I run for our house. It greets us in the morning, shows the forecast and current conditions, pulls our family calendar and figures out drive time to the first event, shows how far family members are from home, and keeps an eye on my wife's voiceover orders with deadline countdowns. The smart-home automations around it wake the screen about half an hour after sunrise and put it to sleep at bedtime.

It’s the same instinct I bring to product work: notice the people and routines involved, then build something that makes their day simpler.

Morning view of the family dashboardEvening view of the family dashboard
Weather, calendar, commute, and home status in one place.Built around the routines our household actually has.Helpful before we ask, quiet when we don’t need it.Clear about what it knows and when a source is behind.
  • Weather, calendar, commute, and home status in one place.
  • Built around the routines our household actually has.
  • Helpful before we ask, quiet when we don’t need it.
  • Clear about what it knows and when a source is behind.

Other things I've built.

Willow

01

My wife was paying for a life-organizer app, so I built her one instead. Tasks, meals, groceries, and her creative projects in one elegant, installable app that works offline and syncs when she signs in.

Our smart home

02

Our house runs on a Home Assistant setup I built and maintain. It knows when we’re home and where we are in the house, so the lights respond without anyone having to think about them, and automations like waking the bedroom TV to show the morning dashboard half an hour after sunrise happen on their own.

MIDI Translator

03

A small custom tool that lets me adjust my studio volume from my Stream Deck. It runs on my computer and controls the audio interface that feeds my speakers, while a companion app starts and stops it automatically when I switch speaker systems.

From front of house to full stack.

For more than a decade, I worked as a live audio engineer, most recently mixing front of house for a large, multi-site church, where Sunday comes whether you're ready or not. That work taught me important habits I now bring to software: understanding the whole signal chain, preparing for failure before it happens, staying calm while you fix it, and never letting the audience feel the complexity.

In early 2026, I turned that same discipline toward software. I'd already run a wedding videography business, led media for a church as it grew tenfold, and studied digital marketing. Across all of it, the through-line was the same: take a messy problem and build a dependable system around it. AI-native development gave me the leverage to take that work end to end. The result was Prentice, my lead-response platform, now used daily by a Merry Maids franchise.

I'm early in my software career. I learn quickly, work hard, and genuinely want to keep getting better at this.