PUNEETH KOTHA

Puneeth Kotha

Software Engineer · ML · AI Agents · Backend
NowSoftware Engineer · Amazon
EducationM.S. Computer Engineering · New York University

I build the backend systems that make ML and AI agents dependable in production. Fast, observable, and hard to knock over.

01

About

I'm a software engineer at Amazon, with a master's in Computer Engineering from New York University. I like building things that are hard to build and easy to rely on — and I care as much about how a system holds up on its worst day as how it looks on its best. Away from the screen, I play professional soccer and run most mornings, and I bring that same drive to how I build.

I spend most of my time thinking about how ML systems break in production, and building the infrastructure to stop it. During my master's I built Orbis, a multilingual classifier running inference on over a million global corporates; before that, an inference server that cut p95 latency 30%, a tool that compiles natural language into executable ML pipelines, and a real-time streaming platform handling thousands of events per second on Kafka and Spark.

I like the unglamorous parts of the stack: the async pipelines, the failure recovery, the inference serving that doesn't fall apart under load. Python and Kafka are where I live, but I've worked across FastAPI, Redis, PyTorch, Hugging Face, AWS, Docker, and PostgreSQL.

02

Selected systems

10K+
exec / min
Flint · LLM→DAG
98.75%
precision
Orbis · 1.4M entities
−30%
p95 latency
Falcon · inference
<50ms
stream latency
StockStream · 5K/s
7.7ms
search p95
Prism · 25K listings
−40.5%
ViT latency
4-bit NF4
ML systems · NYU Stern · 2025code ↗demo ↗

Orbis a three-stage multilingual entity classifier

Classify 1.4M parent entities — Individual, Company, Family Firm, Government — across 120+ countries, where naming conventions are inconsistent and the text is multilingual.

A cascade that spends compute only where it has to: deterministic rules catch the obvious cases at near-perfect precision, an LLM (Claude, batched) resolves the ambiguous middle, and a fine-tuned XLM-RoBERTa handles the multilingual long tail with confidence-threshold abstention.

Hardest part. Calibrating the escalation thresholds — how confident each stage must be before it hands off to the next, more expensive one.

Fig. 1 — classification cascade
Raw entity
50+ langs
Rules
~56% caught
LLM
Claude batch
XLM-RoBERTa
690K tuned
Classified
98.75%
misclassification < 1.25% · 6 months of manual labeling eliminated
Agent evals · open source · 2025code ↗demo ↗pypi ↗

EvalGate a CI gate for LLM agents

Teams ship agent regressions because observability isn't evaluation — and an LLM judge you can't trust can't grade the build. I wanted one defensible pass/fail that also watches the judge.

Error-analysis first: sample failing traces, embed, and cluster them into a failure taxonomy, then run deterministic code checks plus a calibrated LLM judge. The judge is re-scored against a frozen human anchor set every run (Cohen's κ + Gwet's AC1); the gate reads a Wilson score interval and compares versions with McNemar's paired test.

Hardest part. Keeping the verdict trustworthy on tiny samples — Wilson lower-bound gating and McNemar paired tests so a two-sample wobble can't flip the build, plus κ-drift detection so a drifting judge is caught, not obeyed.

Fig. — the eval gate
OTel spans
GenAI
Ingest
pg+pgvector
Evaluate
checks + judge
Calibrate
κ · drift
Gate
Wilson·McNemar
exit 0 / 1 in CI · blocks regressions and judge drift
Infrastructure · 2024code ↗demo ↗API ↗

Flint a self-healing LLM workflow → DAG engine

Building complex LLM workflows means a code change for every adjustment — and scripts break silently when an upstream schema shifts. I wanted to describe a workflow in natural language, have it run reliably, and catch its own failures.

An LLM-powered compiler turns a natural-language description into an executable DAG, then a parallel asyncio scheduler runs it with topological batching, 5-check corruption detection (cardinality, required, non-nullable, range, freshness), and failure-classified retries (rate-limit → wait, network → backoff, logic → halt). The whole pipeline runs on a free real-time LLM — Groq by default, swappable to Gemini/Claude/OpenAI/Ollama with one env var.

Hardest part. Self-Heal: auditing a workflow's resilience and running a live monitor → detect → diagnose → recover → verify loop — turning fragile nodes red, applying fix patches, and re-verifying until the reliability score climbs back to green.

Fig. 2 — NL → DAG, self-healing
NL prompt
natural language
Compiler
LLM → DAG
Scheduler
async · topo
Self-Heal
detect · patch
Result
verified
self-heals fragile nodes · 10K+ exec/min · runs on a free real-time LLM
MLOps · 2024code ↗demo ↗

Falcon a self-hosted ML inference platform

A model deployed as a single instance is a bottleneck and a single point of failure. Inference needs to scale, degrade gracefully, and be observable.

A multi-worker FastAPI service behind Nginx with Redis caching, idempotency-key dedup, a circuit breaker (5-failure threshold, half-open recovery), exponential-backoff retries, and graceful shutdown that drains in-flight requests.

Hardest part. Getting the circuit breaker and in-flight draining right so a bad deploy degrades instead of dropping requests.

Fig. 3 — inference platform
Client
500 VU
Nginx
load balance
Workers
circuit breaker
Redis
cache · idem
Metrics
Prometheus
p95 latency reduced 30% · zero data loss on failure
Distributed systems · 2024code ↗demo ↗

StockStream a real-time streaming analytics platform

Financial analytics needs sub-second processing and fault tolerance under bursty, high-throughput load.

A Kafka + Spark streaming pipeline with hybrid PostgreSQL + InfluxDB storage tuned for time-series queries, consumer groups and checkpointing for fault tolerance, and Grafana for observability, with rule-based alerts on price/volume/volatility.

Fig. 4 — analytics pipeline
Ingest
Kafka · 5K/s
Process
Spark
Store
Influx · PG
Serve
Grafana
end-to-end latency < 50 ms · fault-tolerant consumer groups
Also shipped
03

Experience

Aug 2026 — Present
Bellevue, WA

Software Engineer

Amazon
  • On the Entertainment team, building large-scale systems for digital orders and processing — just getting started; more to come.
Distributed SystemsAWS
May 2026 — Aug 2026
Palo Alto, CA

Software Engineer

Qualified Health
  • Built an end-to-end clinical data pipeline turning raw clinical notes into validated, submission-ready registry data through a rules-based validation engine that is fully auditable and code-free for clinical staff to update.
  • Engineered privacy and accuracy safeguards against fabricated data and bad identifiers, and fixed a registry export bug that recovered 346 missing data values.
  • Validated accuracy at scale (98.5% match rate) and through blind chart reviews (95.8%, 97.6%), meeting or exceeding the human-abstractor baseline, and shipped it to an external healthcare client.
PythonData PipelinesValidation EngineHealthcare
Jan 2025 — May 2026
New York, NY

Research Software Engineer

New York University · Stern School
  • Built Orbis — a multilingual classifier for 1.4M+ global corporate entities across 120+ countries, combining fine-tuned XLM-RoBERTa, deterministic rules, and async batch inference at 98.75% precision.
  • Improved pipeline throughput 80% via parallel execution, memory-efficient batching, and profiling-driven SQL index optimization on large structured datasets.
  • Replaced months of manual labeling with an async inference pipeline processing 500K+ multilingual entities across 50+ languages.
PyTorchXLM-RoBERTaTransformersAsync I/OSQLpandas
Aug 2023 — May 2024
Remote

Software Engineer

1INME
  • Owned RESTful backend services in Node.js on AWS handling real-time user traffic, cutting synchronization latency 60% through API refactoring and indexed query optimization.
  • Shipped OAuth2 authentication and CI/CD pipelines enabling zero-downtime weekly deployments to production.
Node.jsAWSRESTOAuth2CI/CDPostgreSQL
Jan 2022 — May 2022
Hyderabad, IN

Machine Learning Engineer

Menorah AI
  • Developed and deployed an NLP inference backend integrating BERT-based models, improving intent recognition accuracy ~25%.
  • Optimized request handling and backend performance to reduce API latency under concurrent usage.
PythonBERTNLPFastAPI
04

Notes

01

Multi-stage classification beats one big model

Rules catch the obvious cases at near-perfect precision. LLMs handle ambiguity. Transformers specialize in the multilingual tail. The real work is calibrating the confidence thresholds for when to escalate — cheap where you can be, expensive only where you must.

02

LLM API rate limits are the bottleneck

Batch requests asynchronously (100–500 at a time), back off exponentially on retries, and queue with priorities. That moved throughput ~10x over sequential calls without tripping limits.

03

Instrument at the boundaries

Metrics-first changes how you debug. Instrument request/response cycles, external API calls, and DB queries. Use p50/p95/p99, not averages. Structured logs with request IDs let you trace a path across services.

04

Fine-tune vs prompt

Fine-tune when you have 10K+ labels, need consistent behavior, and latency matters. Prompt when examples are scarce and the task shifts often. In practice: prompt to cold-start, collect data, fine-tune once the patterns are stable.