Sandeep Chavan
01
SandStore
Click to expand ↓
Open to Staff Agent Platform, Reliability & Control Plane roles

I build the systems I ship.

I build control planes for AI agents that operate near production systems. Every claim is cited, the system refuses when the evidence is thin, spend is bounded before the call, and high-risk actions stop for a human. Ten years of enterprise delivery sits behind that work. Staff Agent Platform and reliability roles first; Forward Deployed and Solutions Architect roles after.

Scroll
Flagship project

SandScope

A control plane for AI agents that operate near production systems, and decline when they cannot support an answer.

SandScope console and reliability surface
Live system · full public record
Live system ↗ Source, start to end ↗
What it does

It answers incident and change-management questions over a fixed corpus of architecture, policy, and runbook documents. It retrieves evidence, judges whether that evidence is enough to answer at all, and either answers with every claim cited to a passage or refuses outright. The refusal is the point: anything can answer, the engineering is in knowing when not to.

Why it matters

Most agent demos optimise for answering. This one optimises for knowing when not to, and for leaving an inspectable record of what it did, what it cost, and where it stopped. Built end to end: a Next.js experience layer, a FastAPI and LangGraph runtime, hybrid retrieval, models trained offline and served as ONNX, all on free-tier infrastructure.

4.7%
False answers
5% budget
2.3%
False refusals
10% budget
715
Labelled questions
true by construction
$0
Infra cost
test-asserted
440
Tests, 26 files

Also on the record: human approval nodes that are terminal by graph topology, so a gated run is never resumed; spend reserved against the worst-case surviving provider before any model call; 14 architecture decision records, each naming the alternative it rejected; 30 published defects, 7 of them severity-one; and 62 requirements, each tied to a passing test. An earlier build of the refusal gate reported 0% false answers on 22 questions; the real rate on a proper set was 56.6%. That postmortem is in the repo too.

Enterprise SaaS AI agent systems Multi-agent orchestration Cost governance Full-stack delivery Applied ML Enterprise SaaS AI agent systems Multi-agent orchestration Cost governance Full-stack delivery Applied ML
0
Systems built
0
Agents orchestrated
0
Country dataset
0
CPQ users owned
0
Offline-testable
For recruiters & hiring managers

The 30-second version.

Who I am

I build accountability layers for AI agents that run near production systems. SandScope, the flagship above, is a full control plane: measured refusal, terminal human approval, per-claim citations, spend bounded before the call. Behind that sit ten years at the seam between product and engineering in enterprise SaaS, a CPQ platform serving ~1,500 users across a global manufacturer, and logistics technology programs at the multi-million scale. Delivery track record plus current, hands-on agent-systems engineering, which is what the projects on this page prove.

What I'm looking for

Primarily Staff or Senior roles in agent platform and control-plane engineering, agent reliability and AgentOps, and production agent systems where governance and evaluation carry real weight. Also a strong fit for Forward Deployed (AI) Engineer and AI Solutions Architect roles where the job is shipping reliable agent systems into real enterprise environments. I'm relocation-ready and open to sponsorship (H-1B eligible · UK Skilled Worker · EU Blue Card · Netherlands Highly Skilled Migrant · UAE sponsored work visa · Singapore EP).

Why the projects exist

They're personal engineering work from a focused period of deep technical building. I build systems end to end to stay sharp and to lead engineers credibly, not as commercial products. They're here as proof of how I think and what I can build.

Download résumé (PDF) Email me LinkedIn
(01) About

I'm a builder who spent a decade at the seam between what a business needs and what engineering can ship, a CPQ platform used by ~1,500 people across a global manufacturer, multi-million-dollar logistics programs, and the messy middle of turning ambiguous requirements into shipped software.

In April 2026 I took a deliberate step back to go deeper than a full-time role usually allows: to build production-shaped AI systems with my own hands and learn where they actually break. Multi-agent orchestration. Cost governance for unattended LLM loops. Deterministic quality gates. Evidence gates that refuse when the proof is thin. Full-stack delivery. Applied computer vision. The work on this page is the result, a lab of systems built to understand the hard parts, not to sell. SandScope is where it came together.

That period is wrapping up. I'm looking for a Staff or Senior role in agent platform, reliability, or control-plane work, or a Forward Deployed (AI) Engineer or Solutions Architect role, where real enterprise delivery experience plus hands-on agent-systems building is exactly what the problem needs.

(02) How I work
01
AI & systems engineering

Multi-agent orchestration. LLM provider routing with failover. Cost and spend governance, bounded before the call. Refusal gates measured against explicit error budgets. Deterministic quality control and retry loops. Human-in-the-loop approval that cannot be bypassed.

02
Product & delivery leadership

Requirements to architecture to shipped software. Roadmap and trade-off calls under real constraints. Stakeholder translation between business and engineering. Enterprise SaaS at scale (CPQ, ~1,500 users; multi-million programs).

03
Full-stack & data

Next.js / React / TypeScript. FastAPI / Python. Supabase / Postgres / SQLite. Multi-provider payments. Auth, RLS, GDPR-grade data handling. Applied computer vision and media pipelines.

(03) Selected work

Eight more systems, built end to end.

Grouped into three clusters so the volume reads as focused range, not scatter. Every row opens into an architecture-level case study, the shape of the system, the load-bearing decisions, and what I took from building it. Hover a row for a preview.

CLUSTER A

AI Agent Systems & Governance

I kept hitting the same three walls when building with LLMs, how do many agents coordinate, how do you stop unattended loops from burning cost, and how do you guarantee quality without a human watching every step. These three systems are my answers, and SandScope above is where they came together into one.

01 SandStore A multi-agent “agency” orchestration platform +
SandStore operator dashboard screenshot
Orchestration dashboard + QC/retry view

A LangGraph system that models a whole content-production agency as coordinated AI agents, with routing, quality gates, and spend caps built into the fabric.

The problem

Real multi-agent systems fall apart in predictable ways, agents talk over each other, one bad output poisons downstream steps, and retry loops silently rack up cost. I wanted to build the coordination and safety layer that makes many agents actually work together.

Approach

A hub-and-spoke communication model where a router mediates every hand-off, wrapped in a shared, typed “content envelope” that carries provenance and QC status between agents. Built a real marketing pipeline (intake → brainstorm → legal check → create → QC ⟲ retry → escalate) and a brainstorming pipeline that sizes and validates tasks.

Architecture

A registry of agency subgraphs compiled off shared graphs; a single content envelope (type, payload, metadata, provenance, qc_status) as the only inter-agent contract; a deterministic QC rubric with a bounded retry loop (≤3) and an escalation path; a model-role split (heavier reasoning vs. cheaper generation) resolved at one LLM chokepoint.

Key decisions
  • One chokepoint for all model calls. Routing did not see the actual LLM calls, they fired inside agency nodes, so the spend guard had to live at the generation function, not the router. A load-bearing detail that only shows up when you build the real thing.
  • Governance as data, not vibes. Banned-phrase / doctrine checks are a deterministic rubric, so quality doesn't depend on a model's mood.
  • Worst-case pre-flight check. Every call is pre-checked against its maximum possible cost before it fires, a call that would cross the budget is blocked, not made and regretted.
Stack

Python · LangGraph · multi-provider LLMs · SQLite · 40+ tests (deterministic offline stub mode)

What I took from it

Coordination and cost are the real problems in multi-agent systems, not the prompts. Design the safety rails first.

02 SandManager A competitive-intelligence and feedback-learning pipeline for content strategy +
Opportunity map + feedback diagnostic view

A two-stage research system that turns raw creator and account data into evidence-backed content opportunities, then closes the loop by scoring real post performance against expectation to sharpen the next batch of decisions.

The problem

Content strategy usually runs on gut feel, what to make next, and whether the last batch actually worked, rarely gets evaluated systematically. I wanted a system that treated both halves, what to try and what actually happened, as data problems with a real pipeline behind them, not opinions.

Approach

A research stage that takes seed accounts and creators and turns them into an evidence-backed opportunity map, what's working, why, and what's transferable, using a live scraper for ground-truth engagement data where available and search-indexed data as a fast first pass. Paired with a feedback stage that ingests real posting outcomes after the fact and diagnoses where a result actually came from, research, scripting, execution, or platform/audience mismatch, so the next batch inherits the lesson instead of repeating the miss.

Architecture

A scraping layer rebuilt on a maintained scraping library after an earlier approach proved unreliable, verified via package introspection rather than assumption, since the original method silently couldn't retrieve real view counts; a SQLite log of every scraped data point, ranked by the platform's own strongest engagement signal; two model-agnostic rulebooks, one for research and validation, one for post-hoc feedback, written to generalize across content categories rather than being tied to one account's voice or niche; an explicit hierarchy that treats actual posted outcomes as ground truth over what was planned or intended.

Key decisions
  • Verify the tool works before trusting its data. An earlier scraping approach looked functional but was silently returning fabricated or incomplete engagement numbers; the fix was confirming the real data path existed in the library's source before trusting any number it returned.
  • Separate fast signal from ground truth. Search-indexed data is treated explicitly as a first-pass triage layer, not the audit itself, a discipline that keeps low-confidence data from driving real decisions.
  • The feedback loop is diagnostic, not just a scorecard. Instead of just logging win or loss, the system attributes why, which pipeline stage a miss came from, so fixes target the actual failure point.
Stack

Python · a maintained scraping library · SQLite · rubric-driven, LLM-agnostic evaluation rules

What I took from it

A feedback loop is only useful if it can say why something worked, not just that it did, otherwise you're just relabeling outcomes, not learning from them.

03 Apex An autonomous multi-agent document pipeline +
Apex pipeline screenshot
Pipeline / run tracker view

A ~50-agent pipeline that ingests a specification, generates a tailored multi-document package, and gates the result through a deterministic “AI-vs-human” quality judge before anything is finalized.

The problem

Generating a large, consistent, high-quality document package from unstructured input at volume, while keeping cost bounded and catching the tell-tale signs of low-quality machine output, is a genuinely hard orchestration and QA problem. I built the engine that does it end to end.

Approach

A pipeline of specialized agents (parsing, scoring, tailoring, generation, quality checking) coordinated over a shared job store, fed by a resilient multi-provider LLM layer, with a deterministic quality gate that runs with zero model calls.

Architecture

~50 role-specific agents driven by editable rulebooks (behavior is config, not hardcoded logic); a multi-provider router with time-boxed failover (a rate-limited provider is disabled for a bounded window, not permanently); a composite scoring model blending model judgment with rule-based signals; a deterministic stylometry judge scoring tells, cadence, metric density, and rhythm (zero LLM cost) feeding per-item fixes back into the generator; a SQLite tracker as the single source of truth.

Key decisions
  • Failover must be time-boxed. An early version permanently disabled a provider after a burst of rate-limits, collapsing the system onto a slow local fallback. Bounding the disable window fixed runs that previously never finished.
  • Quality judging should cost nothing. Using a model to judge model output is circular and expensive; a deterministic stylometry pass is cheaper, faster, and more consistent.
  • Agents reason against rulebooks. Behavior lives in editable rule files, so the system is tunable without touching code.
Stack

Python · multi-provider LLM routing · SQLite · Typst/PDF rendering · deterministic stylometry · extensive test suite

What I took from it

At agent-system scale, the hard engineering is resilience and cost-bounded quality, the “AI” part is the easy part.

CLUSTER B

Full-Stack Products

Agent systems are backend-heavy, so I also built two complete, user-facing products to keep my full-stack and data-modeling edge, real auth, real payments, real schemas, real compliance.

04 rove LIVE A two-sided rental marketplace +
rove landing page screenshot
Customer browse + vendor dashboard

A production-baseline vehicle-rental marketplace with separate customer and vendor experiences, server-enforced access control, and a booking + agreement + closeout flow.

The problem

Two-sided marketplaces are deceptively hard, you need role-separated auth, guarded vendor areas, a booking lifecycle, and payment scaffolding, all without leaking one side's capabilities to the other.

Approach

Built on the current Next.js App Router with server actions for all auth (no client-side credential writes), server-side route guards for the vendor portal, and a booking draft → review → agreement → closeout flow backed by Supabase with graceful fallbacks when tables aren't present.

Architecture

Next.js 16 App Router + React 19 + TypeScript; Supabase SSR auth with role-based metadata; server-enforced vendor guards (role + approval state checked server-side); a typed domain model (users, vendors, vehicles with health/maintenance fields, bookings, reviews); payment integration scaffolding; Supabase migration with RLS policies; CI for lint + build.

Key decisions
  • Auth writes happen on the server. Credentials and role state are set through server actions, closing a common marketplace security hole.
  • Vendor access is enforced server-side, twice. Both the role and the approval state are checked in a server layout, a pending or non-vendor account cannot reach vendor pages even with a crafted request.
  • Degrade gracefully. The dashboard reads live data where tables exist and falls back cleanly where they don't, so the app is always demoable.
Stack

Next.js 16 · React 19 · TypeScript · Supabase (auth + Postgres + RLS) · payments · Tailwind · Vercel

What I took from it

In a two-sided product, trust boundaries are the architecture, get the server-side guards right and everything else follows.

05 BORNE LIVE A data-intensive relocation-intelligence engine +
BORNE landing page screenshot
Landing page + result-reveal screen

A full-stack product that turns a résumé and a few inputs into personalized, data-grounded relocation intelligence across 22 countries, with a fact-checked dataset, multi-provider payments, and GDPR-grade data handling.

The problem

Delivering credible, personalized guidance over 22 countries' visa, tax, and cost-of-living data means solving three things at once: keeping a large factual dataset accurate and fresh, computing personalized results fast enough to feel instant, and handling sensitive personal data responsibly across jurisdictions.

Approach

A FastAPI backend with a large scoring/analysis engine over a structured 22-country dataset, a fast guest flow (résumé in → personalized result in under a minute, no login), and a compliance layer (visible data-freshness disclosures, GDPR export/delete, explicit human-approval gates) designed in from the start.

Architecture

FastAPI with ~68 endpoints; a structured country dataset on a quarterly fact-check cadence plus automated drift checks; verification of certain claims against official government registries; a multi-provider payment layer (three providers) with webhook signature verification and multi-currency support; magic-link auth; a guest flow that computes results without an account; SQLite with a Postgres migration path; a separate SEO surface of 22 per-country pages.

Key decisions
  • Data accuracy is a scheduled process. A documented quarterly audit plus registry-backed verification keeps the dataset defensible, with disclosures on every screen that surfaces a number.
  • Compliance is architecture, not a footer. GDPR export/delete endpoints, per-screen disclosure, and a structural human-approval gate were built in, not bolted on.
  • One payment endpoint, many providers. A single interface fronts three payment backends with unified webhook verification, so the frontend never knows which provider ran.
Stack

Python · FastAPI · SQLite/Postgres · multi-provider payments · government-data integrations · vanilla-JS SPA + static SEO pages · Render

What I took from it

With high-stakes data, the product IS the data pipeline and the compliance design, the UI is the easy 20%.

CLUSTER C

Applied ML & Media Pipelines

To round out the systems work, I built pipelines that operate on images, audio, and video, applied computer vision, local-first generative media, and privacy-preserving voice synthesis.

06 Vision content pipeline A self-tuning computer-vision content pipeline +
SandStudio content-scoring dashboard screenshot
Scored-image grid + finished vertical frame

A zero-touch pipeline that scores and ranks images with a local vision model, then assembles the best into finished vertical video and carousel formats, and re-tunes its own scoring weights against real performance.

The problem

Turning a folder of raw photos into consistently good, platform-ready content usually needs a human editor's eye. I wanted to model that eye, scoring, selection, and assembly, as a repeatable pipeline.

Approach

A local vision model scores every image on a multi-axis rubric (composition, color, mood, “save-worthiness”), a planner picks the format and theme against a rotation, and an assembly engine builds the media (Ken Burns motion + word-synced captions for video; layout for carousels). A weekly pass re-weights the rubric from real engagement data.

Architecture

Local vision scoring (no external API); a weighted rubric persisted and re-tuned weekly; a format planner enforcing a content rotation with starvation fallbacks; a media assembly engine (motion, captioning, grading, layout); a ledger tracking outputs; provider-swappable rendering.

Key decisions
  • Scoring runs locally. A local vision model keeps per-image cost at zero and the pipeline runnable at volume.
  • The rubric learns. Weekly re-weighting against real performance closes the loop between “what I thought was good” and “what actually landed.”
  • Fail safe, not silent. When there aren't enough fresh high-scoring inputs, the planner deliberately falls back and logs why, instead of shipping weak output.
Stack

Python · local vision model · FFmpeg-based assembly · SQLite ledger

What I took from it

Encoding a subjective “editor's eye” as a tunable, self-correcting rubric is more achievable, and more honest, than pretending one prompt captures taste.

07 SandFuse A local-first synthetic-character studio +
SandFuse studio screenshot
Generation / job lineage view

A local-first studio for generating consistent synthetic characters, with an image-generation bridge, an identity-consistency step, and full job lineage tracking, engineered to run on modest hardware.

The problem

Generating a consistent character across many images is hard (models drift), and doing it locally on constrained hardware is harder. I wanted a pipeline that held identity stable and stayed runnable on an 8 GB laptop.

Approach

Bridged a local image generator with an identity-lock step, wrapped in a job system that logs every run's parameters, status, and lineage so results are reproducible and traceable.

Architecture

A generation bridge + identity-consistency bridge behind stable internal contracts; a job queue with JSONL run logs (params, status, lineage); a FastAPI service + web UI; a deliberately dependency-light, standard-library-first core so it runs on an M1 Air with 8 GB RAM; provider adapters kept optional behind a stable interface.

Key decisions
  • Local-first and resource-conscious. Standard-library HTTP + SQLite core, no heavy dependencies for the first slice, a constraint that forced cleaner boundaries.
  • Every run is traceable. Job lineage and JSONL logging make outputs reproducible and debuggable, not one-off.
  • Adapters, not lock-in. Rendering providers sit behind a stable contract so the engine isn't tied to any one backend.
Stack

Python · FastAPI · SQLite · local generation bridges · Next.js web UI

What I took from it

Hard hardware constraints are a design gift, they force the clean interfaces you'd want anyway.

08 Voice synthesis pipeline A privacy-preserving voice synthesis pipeline +
CLI run showing the loopback-only guard

A local text-to-speech orchestration tool that turns text into stitched audio through a local voice server, engineered so that biometric voice data can never leave the machine.

The problem

Voice synthesis is powerful and sensitive. I wanted a working TTS pipeline whose design made a privacy guarantee structural: the audio model and voice profile stay entirely local.

Approach

A standard-library-only CLI that chunks text, calls a local voice server, and stitches the results, with an explicit network guard that refuses any non-loopback address.

Architecture

Zero third-party dependencies (Python standard library only); text chunking + audio stitching; a hard loopback-only guard that rejects any non-local server address, so voice data physically cannot be sent off-box; config-driven with defaults mirroring the local server's own.

Key decisions
  • Privacy enforced in code, not policy. The loopback check is a hard refusal, making the “stays local” promise a property of the software rather than a claim.
  • No dependencies on purpose. Standard-library-only keeps the trust surface tiny and the tool portable.
Stack

Python (standard library only) · local voice server

What I took from it

For sensitive capabilities, the right move is to make the safe behavior the only possible behavior, enforce it, don't promise it.

(04) Professional experience

Technical Product Manager

Enterprise SaaS & Logistics · 10 years · now targeting Staff Agent Platform / Reliability and Forward Deployed (AI) Engineer / Solutions Architect roles
Download résumé (PDF) ↓
  • Owned a CPQ (configure-price-quote) platform serving ~1,500 users across a global manufacturer, requirements, roadmap, and delivery with engineering.
  • Delivered multi-million-dollar logistics technology programs at a global logistics leader.
  • Consistent throughline: translating ambiguous enterprise requirements into shipped, adopted software at the product/engineering seam.
(05) Contact

Let's talk.

Open to Staff and Senior Agent Platform, Agent Reliability, and Control Plane roles, and to Forward Deployed (AI) Engineer and AI Solutions Architect roles. Relocation-ready; open to sponsorship.

sandeep.chavan2294@gmail.com
Email me LinkedIn Download résumé