120 m · twilight
← Gabriel Harlan

FIELD NOTE · June 30, 2026 · 6 min

The plumbing is the product

What building an SMS gateway for an AI tire agent taught me about where the real work lives.

  • Engineering
  • AI
  • Internship

Tire Rack’s TRACI is an AI agent that helps you find tires. It lived on the web. Plenty of customers, though, would rather just text a phone number. My internship project was to make that work — let anyone SMS the full agent — without touching the agent itself.

I expected the model to be the hard part. It wasn’t. The model was the easy part. Almost everything that mattered was the plumbing around it.

The vehicle picker, reinvented for text

The website resolves your car with a year/make/model picker widget. You can’t render a dropdown in a text message, and the agent can’t reliably parse a vehicle out of free-form typing. So the gateway resolves the car itself — a numbered-reply drill-down (“1. Honda 2. Toyota …”) that walks Year → Make → Model → trim and then auto-supplies the factory tire size. A texter never has to know their own tire size. That one flow was more design work than the entire model integration.

Answer fast, even when the model is slow

Agent replies can take many seconds; carriers expect a webhook response in far less. So the gateway acknowledges Twilio immediately and hands the real work to a background worker that calls the agent and sends the reply when it’s ready. Inbound texts never time out waiting on inference.

Render a stream of events into plain text

The agent answers with an ordered stream of “events” — text, cards, UI fragments. The gateway classifies each one: keep the text, drop the noise, reformat the cards for SMS. I used a denylist, not an allowlist, so a brand-new kind of agent card is never silently swallowed — worst case it’s reformatted, never lost.

A good AI product is mostly the plumbing around the model — the session state, the async workers, the format translation, the graceful failure. The model is a component, not the product.

It shipped live end-to-end on Google Cloud Run with Redis-backed sessions, a job queue, 90 tests, and keyless CI/CD. My first production service on cloud infrastructure — and the clearest lesson of the internship was that the interesting engineering was everywhere except the model call.

💬 The project TRACI SMS Gateway See the case study → ← all field notes