Traditional QA assumes deterministic systems. AI broke that assumption.
When the system under test is an LLM or an autonomous agent, "expected output" is a distribution, not a string. I build the frameworks, evaluation pipelines, and quality gates that make AI products shippable with confidence β combining classic QA discipline (coverage, traceability, gates) with modern AI evaluation (semantic scoring, security probing, schema contracts).
| Project | What it does | Stack |
|---|---|---|
| π‘οΈ mcp-gatekeeper | The QA framework for Model Context Protocol β 46 validators Γ 8 gates: schema, security, functional, AI semantic eval & human review. Validates MCP servers, Claude skills & extensions before they ship. | |
| π€ CatalystAI | AI agent skills bundle for Zoho Catalyst β installable across Claude Code, Cursor, Gemini CLI, Copilot & Windsurf | |
| π catalyst-java-sdk-wiki | LLM-optimized knowledge base β 106 docs on the Zoho Catalyst Java SDK, structured & interlinked (Karpathy LLM Wiki pattern) | |
| π₯οΈ sentinel | macOS menu bar agent that keeps AI coding sessions alive while your screen stays locked |
Beyond my own projects, I actively hunt bugs in open-source AI tooling β 27 issues and 32 PRs across projects including Anthropic's claude-plugins, Google's agents-cli, Alibaba's open-code-review, PatterAI, and the W3C webmcp specification.
The work spans two sides of quality:
-
π‘οΈ Security research β path traversal & arbitrary file write, SSRF-guard bypasses, git option injection (RCE),
pull_request_targetsecret exposure, fail-open policy governance, and prompt-injection-to-toll-fraud chains. Reported responsibly with CWE classification and exploit analysis; several triaged by maintainers as P0-critical. -
π§ͺ Correctness & spec defects β inverted algorithm assertions and wrong struct insertions in a W3C-track spec, cosine-similarity-vs-inner-product scoring bugs, silent-failure filename mismatches, and consistency-check gaps across integrations.
This is QA where "expected output" isn't obvious β you have to reason about what should happen, then prove what does.
Quality Engineering
Languages & Runtime
AI Ecosystem
class AravindDurgaraj(QALeader):
def strengths(self):
return [
"Quality processes for non-deterministic systems",
"QA tooling developers actually adopt",
"46-validator pipelines > manual checklists",
"Bridging classic QA rigor with AI evaluation",
]
def philosophy(self):
return "If you can't gate it, you can't ship it."β‘ Open to QA Manager / Lead AI QA Engineer roles
Let's talk about making your AI products testable.

