I build agentic products, real-time data systems, and production AI infrastructure.
End-to-end execution — backend, infrastructure, deployment, observability.
Explore selected systems and case studies below.
Systems & Proof of Work
Production systems — designed, built, and deployed.

CRM / Retention / Winback Strategy Engines
Lifecycle automation engines for conversion, retention, and revenue recovery
Mangal Murti Jeweller — Diamond E-Commerce Platform
Full-stack luxury diamond marketplace with 176K+ certified stones
DocIntel v2 — Document Intelligence Platform
End-to-end RAG pipeline with live ingestion, retrieval, and evaluation

Divergence Detector (Advanced)
Event-driven market scanner processing 500+ ticks/s
Code Snippets
Small excerpts from real systems — the kind of details that make products reliable.
LangGraph agentic workflow with conditional tool routing
Multi-step LLM agent that routes between RAG retrieval, code execution, and human handoff based on intent classification.
1from langgraph.graph import StateGraph, END2from langgraph.prebuilt import ToolNode34class AgentState(TypedDict):5 messages: list[BaseMessage]6 intent: str7 tool_results: dict8 needs_human: bool910def classify_intent(state: AgentState) -> AgentState:11 prompt = ChatPromptTemplate.from_messages([12 ("system", "Classify: rag | code_exec | human_escalate"),13 ("human", "{query}")14 ])15 result = llm.invoke(prompt.format(query=state["messages"][-1].content))16 state["intent"] = result.content.strip().lower()17 return state1819def route_by_intent(state: AgentState) -> str:20 routes = {"rag": "retrieve", "code_exec": "execute",21 "human_escalate": "handoff"}22 return routes.get(state["intent"], "retrieve")2324def retrieve_context(state: AgentState) -> AgentState:25 query = state["messages"][-1].content26 embedding = embeddings.embed_query(query)27 docs = vector_store.similarity_search_by_vector(embedding, k=8)28 reranked = reranker.rerank(query, docs, top_k=3)29 state["tool_results"]["retrieved"] = [d.page_content for d in reranked]30 return state3132def execute_code(state: AgentState) -> AgentState:33 sandbox = Sandbox(timeout=15, allow_imports=["numpy", "pandas"])34 result = sandbox.run(state["tool_results"].get("code", ""))35 state["tool_results"]["exec_output"] = result.stdout or result.stderr36 return state3738graph = StateGraph(AgentState) \39 .add_node("classify", classify_intent) \40 .add_node("retrieve", retrieve_context) \41 .add_node("execute", execute_code) \42 .add_node("handoff", human_handoff) \43 .add_conditional_edges("classify", route_by_intent, {44 "retrieve": "retrieve", "execute": "execute",45 "handoff": "handoff"46 }) \47 .add_edge("retrieve", END) \48 .add_edge("execute", END) \49 .compile()
Async event pipeline — Redis Streams with backpressure
High-throughput event ingestion: async generator → Redis Streams → consumer group with explicit backpressure and dead-letter queue.
1import asyncio2from redis.asyncio import Redis3from typing import AsyncGenerator45class EventPipeline:6 def __init__(self, redis: Redis, stream: str, group: str,7 consumer: str, max_pending: int = 500):8 self.redis = redis9 self.stream = stream10 self.group = group11 self.consumer = consumer12 self.max_pending = max_pending13 self.dlq = f"{stream}:dead"1415 async def ingest(self, events: AsyncGenerator[dict, None]) -> int:16 count = 017 batch = []18 async for event in events:19 batch.append(("event", event))20 if len(batch) >= 50:21 await self.redis.xadd(self.stream, dict(batch))22 count += len(batch); batch = []23 if batch:24 await self.redis.xadd(self.stream, dict(batch))25 count += len(batch)26 return count2728 async def consume(self, handler) -> None:29 await self._ensure_group()30 while True:31 pending = await self.redis.xpending(self.stream, self.group)32 if pending["pending"] >= self.max_pending:33 await asyncio.sleep(0.5); continue # backpressure3435 messages = await self.redis.xreadgroup(36 self.group, self.consumer, {self.stream: ">"},37 count=10, block=200038 )39 for msg_id, data in messages:40 try:41 await handler(data)42 await self.redis.xack(self.stream, self.group, msg_id)43 except Exception as exc:44 await self.redis.xadd(self.dlq, {45 "original_id": msg_id, "data": str(data),46 "error": str(exc), "ts": str(time.time())47 })48 await self.redis.xack(self.stream, self.group, msg_id)4950 async def _ensure_group(self):51 try:52 await self.redis.xgroup_create(53 self.stream, self.group, id="0", mkstream=True54 )55 except ResponseError:56 pass # group already exists
Stack I actually use.
These are the tools in the projects above — Python, FastAPI, LangGraph, React/Next.js, PostgreSQL, Redis, Docker, and the surrounding ecosystem.
AI & LLM
16 skillsLLM orchestration, RAG pipelines, agentic workflows, and applied ML.
Backend & Data
12 skillsAPIs, async pipelines, real-time streams, and data persistence.
Frontend
9 skillsProduction UIs and interactive dashboards.
Infra & DevOps
12 skillsEnd-to-end deployment, cloud infrastructure, and observability.
Security & Ethical Hacking
12 skillsOffensive security, hardening, and infrastructure defense.
IT Support & Systems
11 skillsSystems administration, networking, and technical support.
Low-Code & No-Code
10 skillsRapid delivery platforms and workflow automation (2025–2026).
Quant & Data Systems
8 skillsMarket data pipelines, strategy tooling, and financial infrastructure.
How I Work
I handle architecture, backend, and delivery myself — end to end, Dockerized, and deployed. For larger scopes, I bring in people I've worked with before. You deal with one person throughout.
Trusted to Ship Fast
Real feedback from clients on Upwork
“Exceptional developer. Delivered a 30-day scope in 5 days with clean architecture and major infrastructure cost optimization. Proactive, strategic, and explains systems clearly. Highly recommended.”
Sahil V.
Client — Upwork
“Working with him was honestly a great experience. He went above and beyond what I expected, the whole system runs super smoothly, and you can tell he's put a lot of thought into how everything's built, especially the backend and infrastructure. What stood out to me was how smartly he optimized everything. Instead of adding extra paid tools, he used open-source options and self hosted n8n, which saved costs without cutting corners. I really appreciated that level of practicality. Took the time to hop on a call and walk me through the entire setup, shared clear documentation, and made sure I understood. Overall, he's easy to work with, communicates clearly, and genuinely cares about doing quality work. I'd definitely love to work with him again.”
Sahil V.
Client — Upwork
Frequently Asked Questions
End-to-end execution — designed, built, and deployed for production. Common questions about how I work and what to expect.
Let's Build Something Great
I'm always interested in working on exciting projects and collaborations.