// Systems + AI engineering

I build agents that
read, fix and ship code.

I'm Sai Mouli โ€” a backend & systems engineer working where a language model stops being a chat window and starts being a process: an isolated sandbox, a real tool surface, retrieval over an actual repository, and a pull request at the end. Currently engineering data-to-insight systems at NatWest.

๐Ÿ“ Bengaluru, Karnataka ๐ŸŸข Open to opportunities
A Sai Mouli

A Sai Mouli

Backend & GenAI Engineer

Translating complex technical
systems into working software.

I'm a Backend & GenAI Engineer based in Bengaluru, currently working as a Software Engineer at NatWest, where I build RAG systems, AI-powered analytics chatbots, and high-throughput backend APIs. I care about clean architecture, measurable performance gains, and shipping systems that hold up under real load.

Outside of full-time engineering I work in Python, Go and TypeScript on agent infrastructure โ€” a document format that machines can parse without guessing, a coding agent that clones a repo and opens the pull request itself, and patches to the libraries underneath both.

2021 โ€” 2025 CGPA 9.06

B.Tech, Computer Science & Engineering

Ramaiah Institute of Technology, Bengaluru

136 DB tables interpreted by RAG-SQL system
3m โ†’ 30s Dashboard response time reduction
43 REST APIs shipped, 20k active users
87% Manual processing time cut (HR system)

Where I've worked.

Software Engineer

July 2024 โ€” Present

NatWest, Bengaluru, India

  • Built a Retrieval-Augmented Generation (RAG) system over a backend database with 136 tables that accurately interprets user queries, generates and validates SQL, executes it, and returns correct answers with visualized graphs.
  • Developed an AI-powered chatbot for an analytics dashboard used by internal stakeholders, enabling natural-language querying of live business data and cutting analyst dependency on engineering for ad-hoc reports.
  • Optimized backend APIs and data processing workflows, reducing dashboard response time from 3 minutes to under 30 seconds for large-scale data queries.

Software Development Intern

Sept 2023 โ€” Nov 2023

Pods Studio, Bengaluru, India

  • Built 43 REST APIs in FastAPI/Django powering core app features โ€” user auth, data validation, and third-party integrations โ€” serving 20,000 active users.
  • Automated personalized email communication workflows using event-driven triggers (Celery + cron), reducing manual outreach effort and improving user retention by 27%.

Backend Developer Intern

Aamara Technologies

Bengaluru, India

  • Built a full-stack HR management system for Techno Rings (20,000+ machinery and employee records) using Django + React, reducing manual processing time from 4 hrs/day to under 30 minutes โ€” an 87% reduction.
  • Implemented scalable backend modules for attendance tracking, payroll calculation, and equipment management using Django and MySQL; exposed via REST APIs consumed by a React frontend.

Projects & systems I've built.

Format / Spec ยท Go GitHub โ†—

xtxt โ€” plain text that machines can read

Markdown makes an agent infer structure from prose. XTXT lets the document carry it: images, tables that draw their own charts, and typed records the parser returns as JSON โ€” in a file that still opens in any editor and diffs cleanly in git. One syntax, and adding a directive never breaks an old reader.

A written spec, a Go reference parser and six SDKs (C, C++, Java, JS, Python, Rust) held to a shared conformance suite โ€” plus a VS Code extension, an MCP server and an Obsidian plugin. MIT, CI green, shipping on PyPI, npm and pkg.go.dev.

GoRustTypeScriptPythonC / C++JavaMCP
Autonomous agent ยท Python GitHub โ†—

Autonomous Code Agent

Give it a repo URL and a task; it opens the pull request. Clones into an isolated Docker sandbox, chunks the codebase with Tree-sitter, retrieves the relevant functions by embedding similarity, edits, runs the tests, and pushes a real PR. Every capability is exposed through an MCP server, so the tool surface is inspectable rather than buried in a prompt.

LangGraphMCPTree-sitterDockerRAG
Autonomous agent ยท Python GitHub โ†—

AI-Powered Debugging Agent

A debugging pipeline that remembers. Five specialized agents in sequence โ€” log parsing, root-cause analysis, fix generation, validation against the test suite, then the PR. Past incidents land in a FAISS vector store, so the system gets sharper on failure modes it has already seen. Works across OpenAI, Claude and Gemini.

FastAPILangGraphFAISSAWSRAG
Document AI ยท Python GitHub โ†—

Bank Statement Extraction

Template-free statement parsing โ€” PDF and OCR extraction with balance-reconciliation checks, duplicate detection, and a per-transaction confidence score, so the output says how much it trusts itself instead of failing silently.

PythonOCRPDFAnalytics
Agent / MCP

Real-Time Market Analysis Agent

An MCP server exposing live NSE/BSE market data, watchlists, and stock analytics as LLM-callable tools. A LangGraph agent computes RSI, SMA, and VWAP, combined with RAG over financial news to generate grounded buy/hold/sell insights with automated alerts and email digests.

PythonFastAPIMCPLangChain
Distributed ML GitHub โ†—

Federated Learning on Kubernetes

A distributed machine learning platform enabling multiple clients to collaboratively train a shared model while keeping local datasets private, orchestrated with Kubernetes.

PythonKubernetesFederated Learning
Security GitHub โ†—

SecurePass

A secure password management platform that encrypts user credentials client-side before storage, ensuring sensitive data stays protected even from the server.

JavaScriptEncryptionFull-Stack
Everything else

43 repositories on GitHub

Techno Rings backend, a VS Code extension with GPT-backed inline completions, a real-time crypto trade simulator over OKX order books, and the rest of the archive.

Visit GitHub โ†’

Contributing back to the infrastructure I build on.

  • PrefectHQ/fastmcp #4705 merged

    ResponseCachingMiddleware cached every result it saw, including ones a tool returned with is_error=True โ€” so a transient 503 got pinned for the full hour-long TTL and every later call replayed the stale failure. Added the guard plus tests covering the retry path.

  • chroma-core/chroma #7559 open

    Two API implementations annotated a return type as the string "IndexingStatus" without importing the name. Because the annotation was a string the missing import stayed invisible until something resolved type hints. Fixed both call sites with a regression test that needs no cluster to run.

  • PrefectHQ/fastmcp #4706 open

    RFC 6570 explode support for list-typed query parameters.

  • PrefectHQ/fastmcp #4758 open

    Serializes a read-modify-write race in the event store's stream list.

Tools of the trade.

Languages

PythonGoTypeScriptRustC++SQL

Backend Engineering

FastAPIFlaskDjangoREST APIsMicroservicesWebSockets

AI & GenAI Engineering

LLMsLangChainLangGraphRAG PipelinesAI AgentsMCP ServersVector DBsFAISSTree-sitter

Databases

PostgreSQLMySQLRedis

Cloud & DevOps

AWS EC2S3LambdaRDSDockerKubernetesCI/CD

Tools

GitGitHubLinux

Let's build something.

Open to backend and GenAI engineering roles, collaborations, or just talking systems, RAG pipelines, and AI agents. Reach out โ€” I usually reply within a day.