I build LLM systems that survive contact with production — evaluation pipelines, RAG, and document intelligence, on top of the microservices and data platforms that feed them. Fifteen years shipping, ten of them in Python.
class Engineer:
role = "AI Engineer · Full-Stack Python"
since = 2011 # 15 years of shipping
focus = ["LLM evaluation", "RAG", "doc intelligence"]
def philosophy(self) -> str:
return "If you can't measure the regression, you didn't ship a feature."Make LLMs accountable — LangSmith eval harnesses with custom evaluators for accuracy, schema compliance, and latency, benchmarked against public suites and domain sets, because MMLU doesn't know your business.
Ship LLM infrastructure — FastAPI services with OpenAI-compatible schemas over VertexAI and Bedrock. Knowledge Bases, Agents, Guardrails. Every model version replays the eval set before it reaches a user.
Turn documents into data — PDF, DOCX, PPTX, and scans. Azure Document Intelligence + PyMuPDF, layout intact.
Build the boring parts well — Kafka, Databricks, MLflow, Terraform, Kubernetes. The parts nobody demos and everybody pages you about at 2am.
Building eval-first LLM systems, poking at MCP and agentic tool-calling, and trying to make both boringly reliable. Happy to argue about chunking strategies, retrieval evals, or whether your agent needs to be an agent — suryaswain612@gmail.com
The debugging technique with the highest hit rate is still: read the error message.