Skip to content

Our work

Production outcomes, not demos.

Client work we have delivered, led by the product we built for Cooper Compass, alongside reference architectures that show how we design systems at scale. Named with permission or anonymized to protect confidentiality; reference architectures are representative designs, not claimed engagements.

Data PlatformAI / ML EngineeringIntelligent Agents

Client work

Systems we have shipped to production.

AI ProductCooper Compass Logistics · Customs Brokerage01 / 04

Thavasi Scrutiny: a zero-tolerance audit of every Indian customs checklist, with the evidence attached

The Challenge

Before a Customs House Agent files a Bill of Entry, someone has to check the draft checklist against the commercial invoice, the packing list, the bill of lading or air waybill, and the certificates — field by field. A wrong container number or a currency read as INR instead of USD is a penalty, a held consignment, or a re-filing. Cooper Compass, an IIT Bombay-incubated startup, needed that scrutiny to be systematic and defensible rather than a senior filer squinting at PDFs.

What We Built

  1. 1

    Built the product end-to-end as their delivery partner: React and TypeScript on the front, FastAPI and PostgreSQL behind it, with slow OCR pushed into a Redis-backed worker so an upload returns immediately and the browser polls for the result.

  2. 2

    Local-first extraction — pdfplumber, camelot, pytesseract and openpyxl do the reading. A vision model is called only for genuinely scanned pages, behind a flag, so documents are not shipped to a third party by default.

  3. 3

    A deterministic scrutiny engine compares 18 catalogued customs fields, 10 of them zero-tolerance, across air, sea, road and rail. Transport mode is resolved first, so a container number is never demanded of an air shipment.

  4. 4

    Every extracted value carries its own provenance — document, page, extractor, cell, bounding box, raw text and confidence — captured at extraction time so the report can always show where a number came from.

Technical insight

The engineering decision that matters here is that the language model is never in the decision path. It gap-fills extraction on layouts the deterministic parsers miss, and it narrates why a flagged field differs — but matching, verdicts and ordering are pure functions of the inputs and a versioned rule config. Re-run an audit from six months ago against the config it ran under and you get the same findings, which is the difference between a tool a broker can defend to customs and a tool that merely sounds confident. The engine also refuses to guess: a value is only evidence for the field whose own printed label it sat under, so two similar-looking numbers in different comparison groups are never matched to each other. It reports discrepancies and never proposes a value.

ReactTypeScriptFastAPIPostgreSQLRedis + RQLocal OCRDocker

Outcomes

18 fields

Audited per checklist, 10 at zero tolerance

Reproducible

Same inputs and rule version, same verdict

Local-first

OCR runs in-house, not in a third-party API

AI ProductFarm2ComAgriTech · Farming02 / 04

An AI farming platform for Indian farmers. We built all of it: the app, the backend, and the models.

The Challenge

Farm2Com set out to put an agronomist in every farmer's pocket. Indian smallholder farmers decide what to plant and how to treat crop disease on guesswork and word of mouth. That takes far more than a model demo: a real consumer product that runs on low-end Android phones over patchy rural networks, with AI that answers in seconds.

What We Built

  1. 1

    Built the entire platform end-to-end as their delivery partner: the Android-first React Native app, the TypeScript/Node backend, the real-time infrastructure, and the AI layer. One team, everything.

  2. 2

    Built and integrated an SLM-powered crop advisory model: soil NPK, pH, temperature, humidity, and rainfall go in; the right crop to plant comes out in seconds.

  3. 3

    Farmers photograph a sick crop and vision AI identifies the disease on the spot, with treatment guidance attached.

  4. 4

    Live weather, agri news, a farmer community feed, and real-time chat with certified crop consultants, all in one app engineered for low-bandwidth rural use.

Technical insight

The hard constraint was the audience: entry-level Android devices on rural bandwidth. The advisory model is served behind a thin API so predictions stay fast even on 3G, photos are compressed client-side before diagnosis, and the app itself is built lean so AI features feel instant where connectivity is worst.

React NativeExpoTypeScriptNode.jsMongoDBSocket.IOCustom MLVision AI

Outcomes

End-to-end

App, backend, and AI by one team

2 AI models

Crop advisory + disease detection in production

Seconds

From photo to disease diagnosis

Data PlatformE-commerce03 / 04

Cutting a 36-hour ETL pipeline down to 10 minutes

The Challenge

A growing e-commerce company's daily ETL took 36 hours, so reports landed in the afternoon and morning decisions ran on yesterday's data. It had been patched repeatedly. The real problem was architectural.

What We Built

  1. 1

    Re-architected the PySpark jobs: partition pruning, broadcast joins, and incremental processing instead of full daily reprocessing.

  2. 2

    Moved to a medallion lakehouse on S3 with Apache Iceberg for schema evolution and time-travel.

  3. 3

    Deployed on autoscaling EMR, replacing a fixed cluster that ran 24/7 for three hours of real work.

PySparkAirflowApache IcebergAWS EMRS3dbt

Outcomes

99%

Reduction in processing time

36h → 10m

Pipeline duration

~40%

Compute cost reduction

AI AgentsB2B SaaS04 / 04

A multi-agent system that auto-resolves 60% of support tickets

The Challenge

An engineering team lost 15+ hours a week manually triaging support tickets: reading, classifying, looking up docs, and routing. Pure mechanical work, blocking the roadmap.

What We Built

  1. 1

    Built a LangGraph multi-agent system: a coordinator routes each ticket to a specialized sub-agent.

  2. 2

    A classifier tags intent and urgency; a resolver answers from internal docs via a pgvector RAG store.

  3. 3

    High-confidence tickets auto-resolve; the rest route to the right human with full context attached.

LangGraphAnthropic ClaudepgvectorFastAPIPostgreSQL

Outcomes

60%+

Tickets auto-resolved

~12h/wk

Engineering time reclaimed

<30s

Average first-response time

Reference architectures

Other systems we design and build.

Representative patterns from our work, not specific client engagements. Happy to walk through any of them in detail.

Real-Time ML

Real-time fraud scoring at high throughput: Kafka and Flink compute streaming features into a Redis feature store, and a gradient-boosted model scores each transaction in under 100ms.

KafkaFlinkFeastRedisSageMakerXGBoost
GraphRAG

A GraphRAG knowledge system over large regulatory corpora: entities and relationships are extracted into a Neo4j graph alongside vector search, so answers follow citation and amendment chains, not just keywords.

Neo4jLangGraphGPT-4opgvectorFastAPI
Agentic MLOps

An agentic MLOps system that watches models in production, detects drift, runs canary retrains automatically, and escalates only high-impact decisions to a human.

LangGraphSageMakerMLflowFeastAirflow

Get in touch

Every week you wait, the problem compounds.

Tell us what is slowing your team down. You will get a reply within 24 hours from an engineer, with an honest assessment and exactly how we would approach it — including when the answer is that we are not the right fit.

LinkedInInstagram
  • 24 hours

    Reply time, from an engineer

  • Free

    Discovery call, no obligation

  • Day one

    You own all code and infrastructure

  • Zero

    Lock-in, licences, or retainers