thanooj@portfolio:~$

Thanooj Lingampally

Founding AI Engineer @ Dottr

First engineer at an AI contract-intelligence startup. I own the Claude agent loop, its honesty guards and evals, signature-field detection, and the AWS infrastructure under it. I build the unglamorous parts that keep agents honest in production.

$ set mode
ε = 0.10 // mostly greedy
0 · always exploit1 · always explore
render: latticeconverged
$ ls projects/ --sort=policy --epsilon=0.10
mode=exploitarms=6
$ ls projects/archive/ --oneline
$ cat experience.log
  1. [00]

    Founding AI Engineer

    @ DottrJan 2026 — present
    • ›First engineer. Own the backend and the agent for a contract-intelligence and e-signing product with paying customers, across several deployed services on AWS.
    • ›The Claude-on-Bedrock agent behind chat and email: tool calling at scale, prompt-cache-aware context assembly, a layered honesty guard that verifies every claimed action, and an eval harness that replays real flows against every prompt and model change.
    • ›Took time to first token from tens of seconds to under two by streaming while the guard audits concurrently and retracts on failure.
    • ›Signature-field detection as a propose-then-select pipeline: a small quantised detector proposes, Claude selects, with the eval set built before the model.
    • ›Multilingual document ingestion, log-fingerprinted alert triage, deploy gating on the test suite, and the infrastructure and cost hygiene that a one-engineer backend needs.
  2. [01]

    ML Engineer

    @ Tata Consultancy ServicesDec 2022 — Aug 2024
    • ›Scoped and built a customer-facing RAG platform for 10K+ enterprise users, working directly with business stakeholders under corporate security and compliance requirements.
    • ›Spring Boot microservices connecting legacy enterprise databases to ML pipelines.
    • ›Led the MLflow-based MLOps pipeline for model versioning, tracking, and promotion to production.
  3. [02]

    Software Engineering Intern

    @ CounselitApr 2021 — Aug 2021
    • ›Node.js and Express REST APIs and React interfaces for client pilots, with JWT auth and role-based access control.
  4. [03]

    MS Computer Science, Artificial Intelligence

    @ University at BuffaloAug 2024 — Dec 2025
    • ›Reinforcement Learning · Machine Learning · Pattern Recognition · NLP · Computer Vision & Image Processing
    • ›Data-Intensive Computing · Algorithm Analysis & Design · Numerical Methods · Fundamentals of AI
  5. [04]

    BTech

    @ NIT Durgapur2019 — 2023
    • ›Robocell, the robotics club.
$ env | grep STACK

The stack I actually use, not the one I have heard of.

STACK_00=PythonSTACK_01=Claude / Amazon BedrockSTACK_02=LangGraphSTACK_03=FastAPISTACK_04=PostgreSQLSTACK_05=pgvectorSTACK_06=DynamoDBSTACK_07=SQSSTACK_08=ECS FargateSTACK_09=TerraformSTACK_10=DockerSTACK_11=GitHub ActionsSTACK_12=PyTorchSTACK_13=ONNXSTACK_14=MLflowSTACK_15=Cohere embeddingsSTACK_16=Docling / TextractSTACK_17=TypeScript / Next.js
$ cat notes/explore-exploit.md

# on exploration vs exploitation

In reinforcement learning an agent has to choose between the action it already knows pays off and an action it has not tried yet. Pull the known arm and you collect a reliable reward. Pull an unknown one and you might find something better, or waste the pull.

I think the same trade-off runs through a career, and through a life. Most of my working hours go to exploitation: shipping agent infrastructure that has to be correct today. A deliberate fraction goes to exploration: reinforcement learning, robotics, ideas with no obvious payoff. The fraction is the interesting decision. Too little and you plateau. Too much and nothing compounds.

The cleanest version of this is the secretary problem. You see n candidates one at a time, must accept or reject each on the spot, and want the best. The optimal strategy is to reject the first n/e of them, about 37%, no matter how good they look, purely to learn what good looks like, then take the first one who beats everyone so far. That first 37% is exploration you have already decided to pay for. It shows up in apartment hunting, hiring, and job offers with deadlines: anywhere options arrive in sequence and cannot be revisited.

The honest caveat is that the 37% assumes no recall and that only the very best counts. Relax either and the exploration window shrinks. Knowing which assumptions your situation actually meets is most of the skill.

This site is built the same way. Flip the switch or move the slider and you change the policy. Exploit shows the work I am confident in. Explore shows the arms I am still pulling.

$ echo $POLICY // try the switch at the top
$ ping thanooj

Open to conversations about production agents, evals, and anything with a robot in it. Reply time is usually within a day.

64 bytes from thanooj: icmp_seq=1 ttl=64 time=0.9 ms