All Articles
Retiring the Midnight Polling Loop — Rebuilding My Gemini Batch Monitoring Around Webhooks
A working log of migrating Gemini Batch API completion monitoring from 60-second polling to event-driven webhooks: static vs dynamic, signature verification, and real numbers.
Gemini Lab This Week: An Outage, Two Migration Deadlines, and Four Posts to Read Before June 25
Editor's notes on four posts for a turbulent week: surviving the Gemini outage, migrating off the preview image models before June 25, fixing the outputs schema removal, and structuring App Store rejection replies.
Gemini's Preview Image Models Shut Down on June 25 — Code Diffs and Checks From an Actual GA Migration
How I moved my image pipeline off Gemini's preview image models before the June 25 shutdown — confirming GA model IDs, Python code diffs, regression checks, and a safe cutover order.
Gemini Interactions API: Fixing What Broke When the Legacy outputs Schema Was Removed on June 6
Google removed the Gemini Interactions API legacy outputs schema on June 6, 2026. A symptom-based walkthrough of migrating to steps and the new response_format.
Reverse-Engineering Empty Gemini API Responses with finish_reason — Triage, Retry Classification, and Monitoring
An empty response.text has three distinct failure layers — candidates, prompt_feedback, and finish_reason. Production code for detecting thinking-token starvation, classifying what is worth retrying, and monitoring your empty-response rate.
Designing a Nightly Batch That Survives a Gemini API Outage — Three Layers of Defense
This week's widespread Gemini outage cost my nightly batch three hours of work. Here is how I rebuilt it with three layers of defense: classified retries, a model fallback chain, graceful degradation, plus idempotency keys and a catch-up queue.
Gemini 3.2 API Developer Guide — Correct Model IDs, Migration from 3.1, and Production Checklist
A practical guide to calling Gemini 3.2 via the API: correct model IDs, what changed from Gemini 3.1, Python and TypeScript code examples, and a production migration checklist.
Google I/O 2026 Preview — What I'm Watching for in Gemini This Year
Google I/O 2026 is approaching. Based on current Gemini development trends and past announcement patterns, here's what I'm personally expecting — no guarantees.
Don't make Gemini judge your AdMob report — confine structured output to extraction
When deciding AdMob floors (eCPM thresholds), letting Gemini make the decision itself is dangerous. Confine structured output to 'extracting a messy report into typed data,' and keep the threshold judgment in deterministic code — here is the reasoning and implementation, with the actual decision rules from running 42 groups.
Pre-Screening Wallpaper App Submissions with Gemini Vision: A Two-Week Field Memo
Before submitting a new batch of wallpapers, I spent two weeks running Gemini's image understanding as a first-pass filter for store review risk. What it caught, what it missed, and where a human still has to decide.
Gemini Live API Audio Sounds Sped Up — Fixing the Sample Rate Mismatch
When Gemini Live API responses sound high-pitched and sped up, or come back full of noise, the cause is almost always that the 24kHz output is being played at a different sample rate. Here are the concrete fixes for both the browser and iOS.
Reconciling Orphaned Gemini Files API Uploads Across a Fleet of Apps
Files API uploads quietly expire after 48 hours. Here's how I keep orphaned files and quota under control across six apps, using reconciliation against my own database and a scheduled cleanup job — written up as production notes from running wallpaper apps.