Naman VarshneyField Notebook
Open to work & freelanceWork with me
Work · Case studies · 13 yrs

Thirteen years building things that hold.

Principal Architect at TripFactory. I build scalable backend systems, solve the problems nobody else wants to touch, and ship products end to end. AI and LLMs are the newest tool in the box, not the whole story.

Experience13 yrs
FocusBackend · AI
NowTripFactory
BaseBangalore
Open toWork & freelance
No. 01

Featured case studies.

03 selected
01Shared LLM platform · Java + Python

LLM Platform

Every team was wiring its own LLM calls — duplicated effort, reinventing the wheel per use case, slower delivery, and no shared place for provider choice, streaming, or (later) usage monitoring, guardrails and evals. So I built a shared, provider-agnostic LLM service: any provider (OpenAI and Gemini wired first-class, DeepSeek too, with Claude or any new provider/model designed to drop in), any model, streaming, and structured or unstructured responses from one interface — plus a re-entrant handler that executes tools mid-stream over OpenAI’s Assistants API. It became the backbone a whole shelf of features were built on.
Any feature → Shared LLM Service → { OpenAI | Gemini | DeepSeek | … } → structured / streamed response
JavaSpring BootPythonFastAPIOpenAIClaudeGeminiDeepSeekSSEChromaDB
Powered
Itinerary ValidatorFlags trip issues against each traveller’s needs — a toddler in tow vs a late or early flight, a tight checkout-to-flight window, and the like.
Itinerary SuggestorThe pre-step: suggests what a traveller should do, tuned to their unique requirements.
Regional TranslationTurned the English-only site into regional editions — Europe, China, and more.
Content GeneratorPros/cons and traveller-type content for hotels, activities and destinations — ratings, wheelchair-safe, toddler-friendly, female-friendly flags, and much more.
Supplier Email ParserAutomated the manual ops grind of reading supplier emails to mark sold-outs and update pricing.
PDF-to-QuoteTurns an agent’s own PDF package into a priced package entity instantly — big ops time saved.
What I'd do differently nowIt was POC-stage, so the per-feature usage tracking, guardrails and evals it was meant to enable were the next step, not shipped. Centralising LLM access was the prerequisite that makes all three possible — I’d stand up the eval harness earlier next time.
6 use casesbuilt on the layer
4 providersOpenAI · Gemini · DeepSeek · +
streaming+ structured output
1 servicevs per-team wiring
02Hand-rolled agent framework · Python / asyncio

crew_v2 — Agent Orchestrator

A from-scratch async multi-agent orchestrator I built instead of reaching for a framework — so I had the control a customer-facing flow needs: sequential / parallel / hybrid execution, semaphore-bounded concurrency, per-task retries and timeouts, a task dependency DAG, lifecycle hooks, and cancellation. It powers a genuinely complex trip planner: specialist agents for destinations, hotels, activities, transfers, visa and insurance fan out in parallel — each grounded in RAG over real inventory and pricing — then a synthesis agent assembles the plan.
Orchestrator → { Destinations · Hotels · Activities · Transfers · Visa · Insurance (parallel) } → RAG (real inventory + pricing) → synthesis → plan
PythonasyncioOpenAIAWS BedrockChromaDB
Powered
Recommendations (RAG)Real hotels, activities, destinations, transfers, visa and insurance — actual inventory and pricing, retrieved via ChromaDB.
Trip-Planner ChatbotThe full multi-agent planner on crew_v2 — built, not yet live to users.
What I'd do differently nowHand-rolling the orchestrator was the right call for a customer-facing flow — I needed predictable latency and cost, not agents wandering off-script. The cost was maintenance; I would document the "why not a library" decision up front next time.
6 agentsdestinations → insurance
DAGdependency resolution
asynciosemaphore + timeouts
RAGreal inventory + pricing
03Fleet rostering & routing · Java

Driver Rostering & Vehicle Routing

Ops ran vehicles, drivers and daily/weekly schedules by hand in spreadsheets — error-prone, hard to manage, and a direct hit to traveller experience. As we expanded across Europe, Australia and New Zealand it became a bottleneck: impossible to scale without piling on headcount, and more headcount meant more mistakes. So I built driver-roster management plus a routing engine: pickup-and-delivery with time windows (PDPTW) for a destination-management fleet — airport, intra- and inter-city, private and shared — with a build-vs-buy strategy that dispatches each batch to a SaaS optimiser or to an in-house greedy heuristic I wrote to honour 13-hour shifts, driver rest, capacity, skill matching and return-to-base. Live GPS monitoring tracks the fleet in real time.
Bookings + roster → Normalizer → Pooler → Strategy → { NextBillion SaaS | in-house heuristic } → Allocator → live GPS
JavaNextBillionMySQLRedisGPS
Where it's headedDynamic re-assignment on live GPS to absorb delays before they reach travellers, and demand-based driver placement — where to stage how many drivers, by time and location. Designed, not yet shipped.
What I'd do differently nowBusiness targets drove this, but there was no metrics layer — I could not prove the gains in code. Next time the instrumentation ships with the planner, not after.
PDPTWpickup/delivery + windows
build / buySaaS or in-house solver
live GPSreal-time fleet monitoring
roster + routesone system, less ops
No. 02

The archive.

3 more
01
Vector-store admin API
CRUD + ingestion over ChromaDB collections for the LLM platform
Vector · AI
02
Payments reconciliation & fraud
Idempotent Spring payment services + reconciliation (Vedantu)
Payments
03
Multi-brand mobile apps
Android & iOS from scratch; B2B agent portal (Via.com / EbixCash)
Mobile
No. 03

Career timeline.

2013 — now
2023 — Now

Principal Architect

TripFactory

Platform services, payments, BFF and observability — plus the LLM platform and AI work.

2020 — 2022

Engineering Manager / Tech Lead

Vedantu

Payments reliability & reconciliation, live-class scale, data pipelines; led a team of 12.

2018 — 2020

Senior Software Engineer

EbixCash

After Ebix acquired Via.com: Via flights feed onto Google, the corporate-client portal, Itz Cash eGift cards for HDFC Bank, and third-party bus/car-rental API integrations.

2014 — 2018

Senior Software Engineer

Via.com

Led Android & iOS apps for B2B/B2C/corporate (1M+ users combined; J2ObjC to share Android code to iOS); dual-authentication fraud reduction; supplier API integrations.

2013 — 2014

Software Engineer (first hire)

Shoppoke

First employee. Built the product end to end — Android app + Ruby on Rails backend.

2012

Assistant Researcher

Dalhousie University

Built an earthquake-data visualisation tool; co-authored the published APE-ELEV loss-estimation technique.

No. 04

What I work with.

lang · infra · ai · cloud
// Languages
PythonTypeScriptJavaSwift
// Infrastructure
KafkaRedisPostgreSQLMySQLDocker
// AI / LLM
OpenAIClaudeGeminiDeepSeekAWS BedrockRAGChromaDBStructured outputsStreaming tools
// Cloud / Ops
AWSGCPGrafanaPrometheusSSE
No. 05

Publications.

research roots · 2012—13
Let's build

Build something together.

A full product, a backend that has to scale, AI features, or a hard problem worth solving — I'm open to the conversation.