Orchestrators, queues, webhooks, evals — the engineering layer between a foundation model and a user who actually depends on it.
A short-let management company was hand-quoting every inbound lead. I built the system that turns a website form submission into a Claude-generated estimate delivered over WhatsApp Business — with idempotency, parallel data fetches, signed webhooks, and an async worker tier that survives the model misbehaving.
The first outbound goes as an approved WhatsApp Business template so it can legally land outside the 24-hour session. We give up creative copy to gain guaranteed deliverability — the model fills slots, not paragraphs.
after() vs. queue-onlyVercel's after() hook lets the orchestrator respond instantly while the heavy LLM call runs out-of-band. We still queue on the droplet — after() is the bridge, not the worker. Crash-safety via BullMQ retries.
A single DigitalOcean droplet running Fastify + Redis beats a cold-starting Lambda for 90-second LLM jobs. Persistent connection pools, no per-invocation billing surprise, and we own the queue.
after()I'm Waigs — applied AI engineer, 16 years shipping software, the last three on LLM systems end-to-end. Background in distributed backends; current obsession is making models feel like reliable infrastructure to the people calling them.
I move fast as a solo build and integrate cleanly into existing teams. I prefer boring infra and ambitious product behavior over the other way round.