Building through systems I do not control
A natural-language interface over fragmented operational data, so non-technical ops teams can ask questions without filing an engineering ticket.
Operational data lived scattered across Zendesk, Salesforce, Deposco, and Snowflake, with no single source of truth. Ops teams needed answers in minutes, but every question meant waiting on an engineer to write a query.
I built the LLM-powered interface that turns a plain-language question into a query, and — more importantly — designed the validation and safe-execution pipeline that stands between a generated query and production data.
Natural-language question → schema-aware prompt construction → generated query → validation and sandboxed execution → formatted result, with ambiguous or unresolvable requests routed back for clarification instead of a guessed answer.
“The difference between a tool ops teams can rely on and one that quietly returns a wrong number.”
I chose to validate and sandbox every generated query rather than trust the model's output directly. It's slower per request, but it's the difference between a tool ops teams can rely on and one that quietly returns a wrong number.
Malformed or ambiguous generated queries, schema references that drift as the underlying data model changes, and the most dangerous failure mode of all: a query that runs successfully but answers the wrong question.
Non-technical operations users now query production data directly in plain language, without opening an engineering ticket for every question.
Scaling this across more data sources means the schema-aware prompt stops being enough on its own. I'd build a semantic layer that federates across sources and an evaluation harness that catches correctness drift as schemas evolve.