AI engineer in Hyderabad. I build retrieval and agent systems, and I care about the parts that are easy to claim and hard to prove: whether the memory actually recalls the right thing, whether the guardrail actually holds when the agent argues with it, what the latency really is.
Most of my work lands in one of two places: memory for agents (how a system remembers a person across sessions without dragging 20k tokens of context along) and governance for agents (what an autonomous system is permitted to do, and to claim).
mimir: Local-first agent memory where the brain is an Obsidian vault you can open and edit. Scores 51.3% on the Agent Memory Benchmark (personamem/32k, 302/589), measured by running the benchmark's own leaderboard harness end-to-end rather than trusting an internal script, using 219 measured context tokens per query against 11,800–24,200 for comparable systems. That number has been wrong twice before and corrected both times in public: a 59.6% that turned out to be a measurement artifact, and a 47.7% that held until the real leaderboard harness (not an internal one) exposed a second bug: the benchmark adapter was discarding the engine's actual retrieved context and rebuilding a much poorer one, which alone was costing 18 points. Both fixes are in the README's own change log, because a portfolio that never corrects itself isn't measuring anything. The first fix, underneath both retractions, is the real lever: Gemini's thinking tokens were eating the output budget and truncating extraction to one fact per session; fixing it is worth +11.9 points on a paired re-run, against a measured 70.7% perfect-memory ceiling on this split. Markdown as source of truth, DuckDB + embedded Qdrant underneath, BM25 + vector hybrid search fused with RRF, and a four-signal score that includes graph proximity through the vault's own wikilinks. Speaks MCP, runs with no server and no API key.
finLM: A governance layer for agents operating on financial systems. It decides what the agent may do and what it may claim, and the agent doesn't get a vote. Risk gate red-teamed with 4 bypasses found and fixed, 119 tests, a backtester over ~7M rows of survivorship-corrected NSE data, and 15 tools exposed over MCP. Zero orders ever placed, by design.
orpheus: Real-time voice AI with VAD, speech recognition and synthesis all running locally on a 4GB GPU (Silero + Moonshine ONNX + Kokoro ONNX), with only the LLM in the cloud. Sub-second turnaround; the console prints per-stage STT / LLM-TTFT / TTS-TTFA timings so the claim is checkable.
second-brain-rag: Hybrid RAG over an Obsidian-style knowledge graph, applied to insurance underwriting. BM25 + BGE-M3 fused with RRF, then enriched by walking wikilinks up to two hops before the model answers. Built on Google's Open Knowledge Format. This is where the retrieval approach behind mimir started.
engram: Multi-tenant memory middleware over
Qdrant, Redis and Neo4j. A learning project, public for the design decisions: two-level
tenant isolation, updates that supersede rather than overwrite, GDPR erasure that follows
its own S3 archive pointers, and deliberately no tenant_id label on any Prometheus metric.
context-engineering-from-scratch:
A RAG pipeline built raw before any library touches it: chunking, BM25 + vector fusion via
RRF, cross-encoder reranking, lost-in-the-middle reordering, sentence-level NLI grounding.
Two real bugs found by measuring instead of reading the code: ALL-CAPS section headers
tanking the reranker's score, and NLI collapsing to "neutral" on multi-fact premises until
scored per sentence. Same repo also holds ai-engineer-study-guide/: ten more notebooks
covering pre-transformer ML through the frontier (autograd from scratch, attention,
scaling laws, LoRA/RLHF/DPO, agents, GraphRAG), all execution-verified, no step skipped
just because the model was small. Private for now.
Currently: got mimir onto the actual Agent Memory Benchmark leaderboard harness end-to-end, not just an internal script. That's what caught the adapter bug above. The fix and the real 51.3% are already public in the README; opening the PR to add mimir to the public leaderboard itself is next.