Skip to content
Abhishek KolgeSenior AI Product Engineer
GET /llms.txt · text/markdown
# Abhishek Kolge

> I build AI products end to end, most recently in healthcare, real estate and allergy-safe cooking. I don’t let the model make the final call on safety or money, and I test AI features against known answers before they ship.

Personal site of Abhishek Kolge (https://abhishekkolge.dev). Every claim below is on the résumé or on this site; the case studies behind the links carry the detail, the decisions and what went wrong. Each link points at the markdown version of a page: drop the `.md` for the page itself.

**Now:** Senior AI Product Engineer, Contract · healthcare, proptech, consumer iOS, Feb 2023 to present.

**Before:** Sr. Software Developer, DigitalSalt (Feb 2022 to Feb 2023); Frontend Developer, AppOctet (Aug 2021 to Feb 2022).

**Open to:** Lead / Staff AI engineer · Lead / Staff product engineer · Founding engineer · Contract or fractional. Remote, any timezone.

**Fits:** AI engineer · AI product engineer · product engineer · founding engineer · full-stack · tech lead · security · platform/DevOps.

**Contact:** abhishekkolge96@gmail.com · github.com/AbhishekKolge · linkedin.com/in/abhishek-kolge

**Outcomes**

**AI systems**

- Mosaic AI: multi-agent text-to-SQL over live Snowflake for researchers who have never written SQL, with a Claude orchestrator and code-controlled fan-out to parallel SQL sub-agents
- Passed 10/10 checks four runs in a row on a five-question golden set whose ground truth is re-run as SQL each pass
- Self-serve dataset onboarding on Temporal over a 793-table account: a model-written semantic layer that plain code downgrades when a claim is unsupported, official warehouse descriptions copied verbatim
- Perpetuity: document extraction on Claude constrained to a fixed schema, enum-constrained so a line item cannot map to a category that does not exist, re-validated in plain code
- Underwriting went from days of retyping a rent roll to minutes, with a person approving each module
- Row labels pulled from a document are capped in count and length, with control characters stripped, before they reach the categorisation prompt
- Perpetuity: reverted an agent-loop migration of the extraction pipeline after two days, because the work is a fixed sequence and the loop only added failure modes
- Per-deal RAG chatbot over a deal’s own documents: Postgres full-text + pgvector HNSW fused with RRF, in-process ONNX embeddings through fastembed (no per-query embedding cost), page-level citations
- The Food Maestro: an allergen safety gate reading the title, steps, expanded instructions and chef tip, not only the ingredient list
- Enforced a 200k-token daily ceiling per person inside the generation loop
- Deterministic rules keep the final say over an LLM reviewer that vetoed every draft in one run and cited three allergens a tester had never declared
- Generated food photos are verified by a second vision pass that throws away any image showing something the recipe never listed; the reviewed photo library it replaced matched 1 recipe in 113, a mismatch I only found by counting

**Security and platform**

- Wrote a 323-line SQL guard with 24 rejection points and 76 tests between the model and the warehouse: AST allow-lists, read-only roles at three independent layers, row and join caps, hashed question logs
- Found 7 bypasses of that guard by live probing, and closed each one
- Deployed to AWS without keys: GitHub OIDC pinned on both the audience and subject claim, so no pipeline holds a static cloud credential
- Stood up a 39-resource Terraform estate so the product had somewhere to run before the shared cluster existed (RDS + proxy with TLS required, IMDSv2, immutable scan-on-push images, budget alarm), and it came out in one PR once the cluster landed
- Wrote Perpetuity’s AWS estate by hand as one Terraform root module of 161 resources, with no off-the-shelf modules
- Put a permission boundary on every task role that denies the 13 IAM calls which escalate a breach, wrote WAF into the staging and prod config, and wrote a DR runbook that names its own gaps
- One tag push drives 7 jobs, and a failed migration blocks the rollout
- Designed three-tier RBAC (platform / owner-team / tenant org, 8 roles), with tenant scope applied as a where clause from the session on every deal read
- Cross-tenant reads return 404 instead of 403, so tenants cannot be enumerated
- Built auth and access control across services with OAuth 2.0, JWT and RBAC/ABAC

**Shipping and quality**

- The Food Maestro: owned a consumer iOS product end to end (FastAPI backend, GPT-5 generation and the AWS platform solo; .NET MAUI client with one other developer)
- Kept 2,363 automated tests green at the release QA run (609 mobile, 1,754 backend)
- A release gate that makes a store build traceable to its commit: clean-tree enforcement, signed version-bump commit, immovable signed tag, build discarded if debug symbols fail to upload. It is written and lands with the next build
- Pre-release review against the live API found 9 food-safety defects and reproduced 4 allergen-exposure paths end to end; recommended holding the release from allergy and clinical testers, with a staged fix plan and a 10-person first wave
- Rebuilt recipe generation as a resumable polled job after real runs of 30 to 190s hit a 60s load-balancer cut-off
- Human-approval gates that keep extracted financials stable: per-module approval with an export artifact as precondition, category mapping locked on first approval and inherited by later months, merge blocked under 35% line-item overlap, model-free recomputation after edits
- Moved spreadsheet recalculation to a warm LibreOffice daemon pool with lock-free rotation and a cold-spawn fallback, after finding headless LibreOffice silently skips cross-sheet recalculation and was persisting stale numbers
- Took an agentic rebuild from pivot to a system running end to end in 9 weeks with 2 engineers: 29 written sub-plans, 42 reviewed PRs, ~800 automated tests across the repo, with more test code than app code in the agent service
- Built Perpetuity from an empty repo with one other engineer (React 19 SPA, Express 5 + Prisma API, FastAPI extraction pipeline, 26 durable Inngest functions): 31 models, 123 endpoints

**Earlier**

- Took Hedged from first commit to launch in 5 months with four engineers, on web, iOS and Android
- Built an internal RAG assistant (OpenAI) over ~8k docs, scoped to the asker’s permissions, that resolved ~40% of support queries
- Built the monorepo behind 8 apps and the UI library 12 engineers use, and cut build times 40% with Turborepo and GitHub Actions caching
- Cut latency 25% across PostgreSQL, Redis and RabbitMQ on services handling ~1.5M requests a day
- Shipped zero-downtime releases on AWS ECS and Lambda
- Mentored 3 engineers and sat in on 10+ hiring interviews

## Case studies

- [Mosaic AI](https://abhishekkolge.dev/work/mosaic.md): internal tool, no public URL · agentic analyst for healthcare data
- [Perpetuity](https://abhishekkolge.dev/work/perpetuity.md): private tenant app, no public URL · real-estate deal platform with AI document extraction
- [The Food Maestro](https://abhishekkolge.dev/work/food-maestro.md): iOS, invite-only TestFlight · AI recipes built around allergies
- [Hedged](https://abhishekkolge.dev/work/hedged.md): web, iOS and Android · first commit to launch in 5 months; 100k+ Play installs today · live at https://hedged.in

## About the work

- [Home](https://abhishekkolge.dev/index.md): selected work, experience and contact
- [Case studies](https://abhishekkolge.dev/work.md): the four studies above, on one page
- [How I work with AI](https://abhishekkolge.dev/ai-workflow.md): the loop, what the model sees, review and tests, permissions, long runs, and where I keep AI out
- [Agent view](https://abhishekkolge.dev/agent): this file rendered as a page, with copy to clipboard
- [resume.json](https://abhishekkolge.dev/resume.json): the same résumé as JSON, from the same source as this file

## Optional

- [ZenAdmin](https://www.zenadmin.ai): web · IT and HR automation for distributed teams
- [Mahindra Lifespaces](https://play.google.com/store/apps/details?id=com.mlife.app): Android and iOS · homebuyer app for a listed developer
- [GitHub](https://github.com/AbhishekKolge)
- [LinkedIn](https://www.linkedin.com/in/abhishek-kolge/)
- [X](https://twitter.com/dev_ak1)
- [Medium](https://medium.com/@abhishekkolge96)
- [Résumé (PDF)](https://abhishekkolge.dev/resume.pdf)
- [Book an intro call](https://cal.com/abhishek-kolge-yed7dg/intro)

Screening with an AI assistant? Paste this in. Every claim maps to the résumé. Also served as /resume.json.

Résumé (opens in a new tab)