I build AI systems that make auditable decisions in production, and I fix the agent frameworks they run on.
My work starts from a concrete constraint: an SLA at risk, a review process that's too slow, financial data nobody trusts an LLM near. It ends as a system where the model reasons and routes, while deterministic layers decide, verify and keep a record.
Currently: AI and business operations at Weblife Labs. Previously: AI research at GEU AI Research Lab, and early engineering at Tesseris.
| AI engineering | Product | Delivery & leadership |
|---|---|---|
| Root-cause fixes merged into Google ADK and AWS Powertools | Start from the user and the business constraint, not the model | Rolling out AI platforms to the teams that use them |
| Agent reliability: live sessions, MCP and tools, state under concurrency | Agree on what "working" means before building, then measure it | End-to-end ownership, from discovery to rollout |
| Benchmarks that evaluate LLM agents on real operational tasks | Scope the smallest system that proves the outcome | Teaching and mentoring as an AI/ML teaching assistant |
flowchart LR
A["Business problem"] --> B["Product framing<br/>users · success metric · scope"]
B --> C["System design<br/>model reasons, rules decide"]
C --> D["Build and verify<br/>tests that fail first"]
D --> E["Ship and measure<br/>rollout · outcome"]
E -. learn .-> B
classDef product fill:#ddf4ff,stroke:#0969da,color:#0a3069
classDef engineering fill:#d1f8f1,stroke:#1a7f72,color:#0b3d36
classDef delivery fill:#fff8c5,stroke:#bf8700,color:#4d2d00
class A,B product
class C,D engineering
class E delivery
The same discipline goes into every fix I send upstream:
- name the invariant that broke;
- cover every place that shared the flaw;
- prove it with a test that fails before the change and passes after it.
| Area | What was broken | PR |
|---|---|---|
| Live API | A non-resumable update erased the session-resumption handle, so a reconnect in the middle of a turn lost the live conversation | #7939 |
| Workflows | A ParallelAgent run as a workflow node passed one sub-agent's branch downstream, so the next step saw only that branch's output |
#7940 |
| Sessions | Concurrent sessions overwrote each other's shared app: and user: state on the SQL and Redis backends |
#7942 |
| MCP tools | Cancelling a run left the in-flight MCP tool call running | #7199 |
| A2A | Converting a remote A2A task into an event kept only its last artifact | #7201 |
| Instructions | Artifact placeholders inserted a raw Part dump instead of the artifact's text |
#7391 |
| Gemini streaming | With thought summaries on, the thought signature was attached to the summary text instead of its own part | #7588 |
| Gemini client | Reused agents failed once their event loop was torn down; the client is now cached per event loop | #7187 |
| Area | What was broken | PR |
|---|---|---|
| Event handler | Exceptions raised inside Depends() dependencies skipped the registered exception handlers |
#8568 |
| Idempotency | Idempotent results containing UUIDs, datetimes or enums failed to save after the function had already run | #8570 |
| VPC Lattice | Any request with a query string returned 404 | #8572 |
Also contributing to AWS Strands Agents, Google ADK for Go and Microsoft Agent Framework.
| Problem | System | Outcome |
|---|---|---|
| Traffic violation review is slow and inconsistent | GridLock-VioScan: YOLOv8 and Gemini Vision detection, automated severity scoring (VSI) and fine-waiver logic | An evidence-backed, auditable violation pipeline |
| SRE teams need to trust AI triage before it touches production | IncidentOps-Agentic-SRE: an OpenEnv benchmark scoring LLM triage, diagnosis and remediation | A measurable trust bar before agentic response ships |
| Finance can't risk LLM hallucination on order-to-cash data | Dodge-AI-FDE: SAP order-to-cash data modelled as a graph, with the LLM as a strict router, never a guesser | A zero-hallucination query layer over sensitive financial data |
| Farm operations need decisions committed, not advised | AI-Autonomous-Farming-Operator: a deterministic safety pipeline with a conversational multi-agent layer in English and Hindi | The system authorizes and verifies real actions, not recommendations |
| Support organizations need SLOs held under load | supportops-env: an OpenEnv benchmark where an AI coordinator triages tickets and holds SLOs | A reproducible stress test for agentic support operations |
| Hidden system failures need diagnosis, not dashboards | sentinel-os-agentic-benchmark: a diagnostic-reasoning benchmark with trajectory-based scoring | Quantified recovery efficiency for LLM agents |
- Agent reliability: live and streaming sessions, tool and MCP lifecycles, state under concurrency.
- Evaluating LLM agents: benchmarks with trajectory-based scoring for operations and incident response.
- Auditable AI decisions: deterministic safety layers around model reasoning, with a record of every decision.
Also: Google ADK, MCP, A2A, Gemini API, YOLOv8.
Always happy to talk about agent infrastructure, evaluating LLM agents, or turning a messy business process into a reliable AI system. Reach me on LinkedIn or by email.

