Ravi Singh
I build Data & AI functions that turn fragmented foundations and isolated AI experiments into trusted platforms, reusable products and measurable business outcomes.
Across DanAds, Readly, Schibsted and HBO Max, I have led work spanning enterprise AI, data platforms, analytics, machine learning and governance. Outcomes include supporting a product initiative that achieved a 14% conversion uplift, reducing per-user LLM licensing costs by 90%, cutting projected annual feature-store costs from $450K to $230K, and supporting the HBO Max launch across 23 European markets.
Session
Most coding-agent demos end when the model produces a patch. In production, that is where the work starts.
A coding agent on a laptop is a good tool and a poor system: it runs as you, on your machine, dies when the lid closes, leaves no record, and its only gate is you pressing merge. We built a software factory in Python that gives a team what the laptop does not. A structured Jira ticket goes through specification, research, estimation, coding in an ephemeral E2B sandbox, review, a dev deploy with a live check, and a merge request that a person still has to merge.
This talk is about why that architecture works: a durable Temporal workflow that retries one stage and survives a worker restart; typed Pydantic handoffs the workflow branches on; one model gateway with a scoped key per agent; prompts, rubrics and context in a reviewed registry; one run id across traces, transcript, branch and ticket; and gates where a person acts with a scored spec and a verified deploy in front of them.
The evidence is one week in July: the same change run in three repositories. The first run failed and the records said why. We changed the inputs, not the model, and the next two ran in 1 h 45 min and 28 min.
You'll leave with an architecture you can adapt and a rule for deciding what to automate, retry, measure, escalate, or hand to a person. Intermediate Python; no Temporal experience needed.