<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arpan Ghosh</title>
    <description>The latest articles on DEV Community by Arpan Ghosh (@arpan_ghosh_6f79cf0ea38ed).</description>
    <link>https://dev.to/arpan_ghosh_6f79cf0ea38ed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4085398%2F13df36dd-cd31-4784-b203-cb30606735fe.jpg</url>
      <title>DEV Community: Arpan Ghosh</title>
      <link>https://dev.to/arpan_ghosh_6f79cf0ea38ed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arpan_ghosh_6f79cf0ea38ed"/>
    <language>en</language>
    <item>
      <title>The farm's satellites can't see</title>
      <dc:creator>Arpan Ghosh</dc:creator>
      <pubDate>Wed, 26 Aug 2026 06:12:34 +0000</pubDate>
      <link>https://dev.to/arpan_ghosh_6f79cf0ea38ed/the-farms-satellites-cant-see-5fb3</link>
      <guid>https://dev.to/arpan_ghosh_6f79cf0ea38ed/the-farms-satellites-cant-see-5fb3</guid>
      <description>&lt;p&gt;(Written by Arpan Ghosh for Google's "Meet the Builders" campaign — celebrating builders across Asia Pacific using Google AI to solve real, local problems.)&lt;/p&gt;

&lt;p&gt;There's a version of "agricultural AI" that works beautifully — if your field looks like an American corn farm. Hundreds of flat acres, one crop, clean rows a satellite can read from orbit without breaking a sweat.&lt;/p&gt;

&lt;p&gt;That is not what farming looks like for most of the world.&lt;/p&gt;

&lt;p&gt;Across Sub-Saharan Africa and Southeast Asia, a huge share of food is grown on plots smaller than an acre, with maize, beans, and cassava planted together in the same small patch of earth — a practice called intercropping, and one that's been quietly feeding families for generations. It's also, as it turns out, something almost no satellite AI model can actually read. The pixels blur three crops into one signal. The model shrugs.&lt;/p&gt;

&lt;p&gt;That gap — between what AI can see and what farmers actually grow — is where I started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Three problems, one fleet&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I didn't want to build a single clever model and call it a day. I wanted to build something that behaved less like a chatbot and more like a small, tireless team working on behalf of a farmer who has never once opened a satellite dashboard.&lt;/p&gt;

&lt;p&gt;So AgriSentinel became a fleet of five specialized agents, coordinated by a Gemini 3.5 orchestrator that decides, plot by plot, cycle by cycle, which specialists actually need to run:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One agent untangles intercropped plots, mathematically separating what's actually growing in a mixed field.&lt;/li&gt;
&lt;li&gt;One agent sees through monsoon clouds, reconstructing a usable picture of a field's health during the exact weeks — peak growing season — when optical satellites go blind for weeks at a time.&lt;/li&gt;
&lt;li&gt;One agent catches crop stress before it's visible, watching how a field breathes and cools days before drought or disease would show up as yellowing leaves.&lt;/li&gt;
&lt;li&gt;One agent verifies soil carbon claims remotely, so a farmer who switches to sustainable practices has a shot at carbon-credit income without needing an expensive soil-drilling crew to show up and prove it.&lt;/li&gt;
&lt;li&gt;And the last agent, built on Gemma, does something I think matters more than any of the technical work: it takes everything the other four agents found and compresses it into one plain-language SMS message — no dashboard, no app, no data plan required. Just a phone.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last piece was non-negotiable for me. It's easy to build a system that's technically impressive and useless to the person it's supposedly for. If a farmer can't read the output on the phone they already own, I hadn't actually solved anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What building it taught us&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I deployed on Google Cloud Run with Vertex AI powering the reasoning layer, and honestly, most of the real learning happened in the gap between "it works on my machine" and "it works for a stranger clicking a link."&lt;/p&gt;

&lt;p&gt;I hit a free-tier quota wall almost immediately once the orchestrator started making several Gemini calls per cycle — a good reminder that prototyping tools and production infrastructure are different animals, and moving to Vertex AI (billed against our own project, authenticated through the service running the code, not a loose API key) was the right kind of growing up to do. I found that some models are only served on specific regional endpoints, not others — the kind of detail you only discover by actually shipping, not by reading documentation in the abstract. I had four agents originally running one after another, taking almost a minute per cycle, until I realized they didn't need to wait on each other at all — they run in parallel now, and a full cycle takes about fifteen seconds.&lt;/p&gt;

&lt;p&gt;None of that is glamorous. All of it was necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why this, why now&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I'm not claiming AgriSentinel is finished. Two of the five agents run on real, working architectures with simplified models rather than fully trained production weights — I say so plainly in our own documentation, because I'd rather be honest about where I am than pretend otherwise.&lt;/p&gt;

&lt;p&gt;But the shape of the thing feels right to us: not one model trying to be everything to everyone, but a small fleet of specialists, each doing one job well, coordinated by something smart enough to know which specialist a given moment actually calls for. That's a pattern I think has a lot further to run — for farming, and for a lot of the unglamorous, essential work that doesn't happen in a boardroom.&lt;/p&gt;

&lt;p&gt;I built this because the smallholder farmer growing three crops on half an acre in the middle of a smartphone-free, satellite-blind, cloud-covered season deserves the same quality of intelligence that a thousand-acre industrial farm gets by default. Not someday. Now, with the tools that already exist.&lt;/p&gt;

&lt;p&gt;That's the story I wanted to tell.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with:&lt;/strong&gt; Gemini 3.5, Gemma 4, Vertex AI, Google Cloud Run, Pub/Sub, Firestore, and Google Antigravity.&lt;/p&gt;

</description>
      <category>googleaichallenge</category>
      <category>googlecloud</category>
      <category>agentaichallenge</category>
      <category>antigravity</category>
    </item>
    <item>
      <title>Building AgriSentinel: a Gemini agent fleet for the farms AI can't see</title>
      <dc:creator>Arpan Ghosh</dc:creator>
      <pubDate>Wed, 19 Aug 2026 17:06:22 +0000</pubDate>
      <link>https://dev.to/arpan_ghosh_6f79cf0ea38ed/building-agrisentinel-a-gemini-agent-fleet-for-the-farms-ai-cant-see-36ke</link>
      <guid>https://dev.to/arpan_ghosh_6f79cf0ea38ed/building-agrisentinel-a-gemini-agent-fleet-for-the-farms-ai-cant-see-36ke</guid>
      <description>&lt;p&gt;Most agricultural AI is trained on massive, single-crop industrial fields — think Midwest corn. Point that same AI at the farms that actually feed most of the world — a half-acre plot in Kenya growing maize, beans, and cassava mixed together — and it falls apart. We built AgriSentinel to fix that, as our entry in the "Fortified Enterprise Fleet" category.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2eequ4m50ngflghqmwbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2eequ4m50ngflghqmwbb.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The core idea&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Instead of one model trying to do everything, AgriSentinel is five specialized Gemini agents coordinated by a Gemini 3.5 orchestrator:&lt;/p&gt;

&lt;p&gt;Plot Disaggregation Agent — untangles intercropped micro-plots via constrained spectral unmixing.&lt;br&gt;
Cloud Piercing Agent — reconstructs optical imagery from cloud-penetrating SAR radar during monsoon season.&lt;br&gt;
Stress Sentinel Agent — flags drought/disease stress days before it's visible, via evapotranspiration anomaly detection.&lt;br&gt;
Carbon Verification Agent — estimates soil carbon change remotely using a physics-informed model, for carbon-credit verification.&lt;br&gt;
Farmer SMS Agent (Gemma) — compresses everything above into one plain-language SMS a farmer can read on a basic phone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqxyfnqt6p92kxrtrup6h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqxyfnqt6p92kxrtrup6h.png" alt=" " width="800" height="729"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The orchestrator decides, per plot per cycle, which agents are actually relevant given live conditions — cloud cover, season stage, whether the plot is enrolled in a carbon program — and runs them concurrently.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What surprised us technically&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Model-region mismatches are real and easy to miss. gemini-3.5-flash wasn't available on Vertex AI's regional us-central1 endpoint for our project — it needed the global endpoint instead. The error message was clear once we read it carefully, but it's the kind of thing you only find by actually deploying, not by reading docs in the abstract.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxlz6669qtb3rq0pw5mm4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxlz6669qtb3rq0pw5mm4.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free-tier quotas will quietly sabotage a deployed service. Our first version used a plain Gemini API key and hit the AI Studio Free Tier's ~20-requests/day cap almost immediately, since one orchestration cycle makes 4-5 calls. Moving to Vertex AI — billed against our actual GCP project instead of a shared free-tier bucket — fixed this and also let us drop the API key secret entirely in favor of the Cloud Run service account's built-in credentials.&lt;/p&gt;

&lt;p&gt;Sequential agent calls add up fast. Four sequential Gemini calls per cycle meant ~47 seconds end to end. Since our four core sub-agents are independent — different sensor modalities, no shared state — we parallelized them with a thread pool and cut that to ~14-17 seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7k8wmzz1k4cmwdloeki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7k8wmzz1k4cmwdloeki.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Async infrastructure needs defensive error handling, not just happy-path code. A single malformed test message sent through the Pub/Sub console crashed our push-subscription handler — and because push subscriptions retry any non-2xx response indefinitely, one bad message became an infinite retry loop flooding our logs. The fix: always acknowledge (200) even on a bad payload, and log the failure instead of throwing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdekpvt87fjqoiiyt7lsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdekpvt87fjqoiiyt7lsi.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Being honest about scope&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Two of our five agents ship with real, complete architectures but untrained or simplified models, given our build window — the SAR-to-optical translator (a Pix2Pix-style U-Net) is implemented and runs, but wasn't trainable to production accuracy without a paired dataset pipeline we didn't have time to build; the carbon estimator uses a closed-form physics approximation rather than a full gradient-penalized PINN. We documented both clearly in the README rather than overstating them — we'd rather show an honest, well-architected fleet than a fragile one that looks more finished than it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Demo Video&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/FNH96otI45s" rel="noopener noreferrer"&gt;Have A Nice Watch!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built by Arpan Ghosh and Asmita Karmakar, team Korvanta AI.&lt;/p&gt;

&lt;p&gt;(This post was written by team Korvanta AI to document how we built AgriSentinel for the &lt;a href="//allthingsagentichackathon.devpost.com"&gt;All Things Agentic Hackathon&lt;/a&gt;.)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
