I'm an AI Engineer who builds and ships full-stack production AI systems — solo, end-to-end. In the last year I've shipped a RAG learning platform, a voice dictation desktop app, a real-time automotive voice AI agent, and a multi-agent VS Code extension. I don't just prompt; I build the full stack around the AI layer.
Background: 3 years enterprise security automation at Wipro → MS Business Analytics at UC Davis (practicum at The Best Notary) → solo production AI product development.
What I work with daily: Claude Code, OpenAI Codex, FastAPI, Next.js, LangChain, Qdrant, LiveKit, Electron.
| Project | What it does | Stack |
|---|---|---|
| AutoCoach | AI learning platform with RAG pipelines, adaptive quizzes, and Bayesian mastery tracking | FastAPI · Next.js 16 · LangChain · Qdrant · Kimi K2.5 · GPT-4o-mini · Supabase |
| Voxi | Voice dictation Electron app — captures speech, transcribes via Groq Whisper, optionally reformats with Claude, injects text into any focused app | Electron · Groq Whisper · Claude Haiku/Sonnet · AudioWorklet · nut-js |
| Volini | Real-time voice AI for cars — natural language questions about specs, pricing, safety ratings, answered via voice, end-to-end | LiveKit · Deepgram Nova-3 · Cerebras LLM · ChromaDB · Next.js |
| Pixel Agents | Forked a VS Code Marketplace extension and shipped the OpenCode SSE integration — visual pixel-art dashboard tracking concurrent Claude Code + OpenCode agents | TypeScript · VS Code Extension API · Canvas 2D · SSE · React 19 |
| Project | What it does | Stack |
|---|---|---|
| Liquidity Forecasting Pipeline | Real-time ELT pipeline for corporate treasury cash flow forecasting | GCP Pub/Sub · BigQuery · dbt · Python |
| Customer Churn Prediction | End-to-end ML pipeline with SHAP explainability for business stakeholders | Python · scikit-learn · SHAP · Random Forest |
| Radiology X-ray Classifier | Multi-label chest X-ray classifier with Grad-CAM interpretability | PyTorch · ResNet · Grad-CAM · NIH Dataset |
AI-powered personalized learning: ingest documents → extract concepts → adaptive quizzes → Bayesian mastery tracking
The problem: Students have no efficient way to turn dense study materials into active recall. AutoCoach automates the full study loop.
Architecture:
PDF/PPTX upload
→ LangChain chunking (1000 tokens / 200 overlap)
→ OpenAI batch embeddings → Qdrant vector store
→ Kimi K2.5 concept extraction (Pareto-corrected for score-inflation bias)
→ RAG-grounded quiz generation (document-scoped retrieval)
→ Three-tier answer evaluation: Kimi K2.5 → GPT-4o-mini → length heuristic
→ Bayesian-smoothed + EMA mastery update
→ Spaced repetition queue (resurface if mastery < 75% AND last tested > 2 days)
Key decisions:
- Pareto post-processing on concept extraction — fixed systematic LLM score-inflation bias; top 20% classified as "core" concepts driving the primary KPI
- Bayesian mastery formula:
smoothed = (correct+1)/(correct+tested+2),new_score = 0.85*old + 0.15*smoothed— prevents overconfident early mastery; caps at 95% until ≥5 tests AND ≥90% accuracy - Zero hard-failure paths — three-tier fallback means no answer evaluation ever crashes
- Optimistic locking on XP/credit writes — 5-retry pattern for concurrent quota safety
Cross-platform Electron app: floating bubble → Groq Whisper → Claude formatting → keyboard injection into any app
The problem: Voice-to-text tools are either cloud-dependent, context-unaware, or inject trash formatting. Voxi is local-first, model-composable, and clipboard-aware.
Architecture:
AudioWorklet PCM pipeline (16kHz mono, 250ms buffering)
→ Groq Whisper-Large-V3-Turbo (transcription)
→ Claude Haiku (optional formatting — cost-sensitive, high-frequency)
→ nut-js keyboard injection → focused app
"Hey Voxi" command mode:
speech → intent extraction → clipboard read
→ Claude Sonnet with task-specific prompts (summarize / translate / debug / rewrite)
→ inject — zero UI interaction
Key decisions:
- Multi-model cost split: Claude Haiku for every dictation (fast, cheap), Claude Sonnet only for complex clipboard commands (slower, more capable) — deliberate latency/cost tradeoff
- AES-256-CBC key storage — API keys encrypted using machine-id-derived key, IV prepended in ciphertext
- Three-tsconfig build system — solved hard Electron ESM/CJS context boundary bug (renderer vs. preload vs. main)
- SQLite correction learning loop — stores raw→corrected pairs per app for automatic personalization without model fine-tuning
- Shipped as macOS universal DMG (arm64 + x64) + Windows NSIS installer
Ask a car question out loud, get a spoken answer in real time — specs, pricing, safety ratings, comparisons
Architecture:
LiveKit AgentSession
→ Deepgram Nova-3 STT (streaming, 25ms endpointing)
→ Cerebras Llama 3.1 8B (LLM)
→ Three-layer knowledge backend:
(1) ChromaDB RAG + MiniLM-L6-v2 embeddings
(2) SQLite cache (24h TTL + background preloading of top-10 cars)
(3) asyncio.gather fan-out → NHTSA + fueleconomy.gov + CarQueryAPI + DuckDuckGo
→ Custom Smallest.ai TTS plugin (raw int16 PCM via AudioEmitter)
→ React Recharts latency HUD (STT + EOU + LLM TTFT + TTS, live)
Key decisions:
- Three-stage entity resolution: exact alias lookup (40+ entries: "miata"→Mazda MX-5) → fuzzy SequenceMatcher (≥0.55) → live NHTSA makes-list scan
- Function-call bleed guard — custom TTS wrapper drops text starting with
<function=before synthesis (discovered through real LLM behavior in production) - Provider-swap abstraction — iterated across 3 LLM providers (Groq → Cerebras → GPT) due to rate limits and tool-call format issues; clean interface kept swap cost minimal
- Per-turn latency instrumentation published over LiveKit data channel → live HUD
Forked from VS Code Marketplace · Shipped the OpenCode SSE integration · Visual pixel-art office tracking concurrent Claude Code + OpenCode agents
My contribution: The original Pixel Agents extension visualizes Claude Code agents as pixel-art characters in an office world. I forked it and shipped the OpenCode integration — a new SSE tracking architecture that enables the extension to monitor OpenCode agents via HTTP event streaming alongside Claude Code's JSONL file-watching, unified behind a single message abstraction so the webview is completely framework-agnostic.
The hard problem — multi-agent SSE routing:
Problem: OpenCode runs multiple concurrent sessions. Naive "mostRecentAgentId" binding
misroutes events when N agents launch simultaneously.
Solution:
1. Pre-launch snapshot: capture existing session IDs before terminal starts
2. Poll /session endpoint until a NEW session ID appears → bind that ID to the terminal
3. sessionIdToAgentId dispatch table routes all subsequent SSE events correctly
→ Works correctly with 10+ simultaneous agents
Other technical highlights:
- Triple-layer file watching (OS
fs.watch+fs.watchFilestat polling + manualsetInterval) with partial-line buffering — prevents JSON parse errors mid-write on append-only JSONL - Canvas 2D game engine outside React —
OfficeStateimperative class holds all game state, 60fpsrequestAnimationFrameloop runs without React reconciler diffs — smooth at 10+ agents in a sandboxed WebviewViewProvider - Inference-based state detection — dual idle signals:
system/turn_durationrecords + 5s silence timer for text-only turns; permission bubble inferred via 7s non-progress timer - Claude Vision in asset pipeline —
@anthropic-ai/sdkauto-generates sprite metadata from purchased tileset PNGs, feeding a 7-stage import pipeline tofurniture-catalog.json
Real-time ELT: GCP Pub/Sub → BigQuery → dbt staging/intermediate/mart → liquidity runway analytics
Designed a streaming ingestion pipeline simulating real-time corporate treasury cash flows (receivables/payables). Built a multi-layer dbt warehouse in BigQuery with projected balance and liquidity runway analytics — automated end-to-end with no manual refresh steps.
End-to-end ML pipeline with SHAP explainability — black-box to business insight
Logistic Regression + Random Forest with GridSearchCV tuning, class-imbalance correction, and a SHAP pipeline that surfaces top churn drivers for non-technical stakeholders. The explainability layer was the whole point.
Multi-label chest pathology classification on NIH dataset with Grad-CAM visual interpretability
ResNet CNN predicting Atelectasis, Effusion, and Infiltration simultaneously from NIH Chest X-rays. Full evaluation pipeline (Precision/Recall/F1/ROC-AUC per condition) with Grad-CAM to highlight regions influencing predictions — interpretability matters when the stakes are clinical.
The Best Notary — Data Analyst / Project Manager · UC Davis MSBA Practicum · San Francisco, CA · Aug 2024 – Jul 2025
Built real-time analytics infrastructure and AI-powered automation for a notary marketplace. Led a cross-functional MSBA team working directly with business stakeholders.
- Built live Airtable → Looker pipeline — eliminated manual reporting, reduced decision latency from static snapshots to near-real-time
- Deployed Slack AI chatbot (Make + GPT) that queries notary data dynamically — reduced manual task handling by ~30%
- Engineered Unified Notary Dataset across multiple U.S. states via web scraping + structured ingestion — enabled market expansion and hiring strategy analysis
- Optimized notary-client matching logic (SQL + Python) — improved matching accuracy by ~15%
- Built data enrichment pipelines for law firm intelligence using Chromium automation (Yelp, Google Reviews)
Wipro — Cybersecurity Analyst / Project Engineer · Pune, India · Jul 2021 – Jul 2024
Managed enterprise identity and access systems (IAM) for 2,000+ users. Promoted from Project Engineer to Cybersecurity Analyst.
- Automated user lifecycle management via PowerShell (provisioning, deprovisioning, GPO) — reduced manual effort by ~33%
- Deployed and optimized CyberArk PAM — improved secure access workflows by ~20%
- Managed Active Directory for 2,000+ users across multiple environments
- Implemented Azure AD SSO + MFA — achieved 100% client retention
- Monitored infrastructure via LogicMonitor — maintained >95% uptime
🎓 M.S. Business Analytics — University of California, Davis · 2023–2025 🎓 B.E. Computer Science — India · 2017–2021



