~/blog

Notes on cloud, infrastructure, and shipping things that don't fall over.

Write-ups from the systems I build and the mistakes I only make once.

Why Gemini Couldn't Change My App's Logo (And What It Reveals About LLM Training)

Summary LLMs loop endlessly on simple tasks instead of admitting failure — a result of training incentives that reward guessing over honesty.

LLMs trained on their own generated data suffer “model collapse,” quietly eroding performance on rare, real-world tasks.

The Pain Point

I asked Gemini Pro, connected to Android Studio via the Gemini API, to add a logo to my app. It should have been simple: the image files were already in the resource folder. Instead, the model kept iterating on the idea without ever executing it.

Read post →

I Replaced My Budget App With an LLM — Here's What It Actually Costs

The Problem: Categories That Never Fit

I struggled to track my expenses for months. Every budget app I tried made me pick a category, set a budget, and log each purchase — and it always broke down the same way: I’d spend the same amount on the same type of item, but at a different store, and suddenly my neat categories didn’t fit anymore.

A simple example: I used to buy milk and curd from my local kirana store, so I made a dedicated category for it. Recently I switched to a higher-quality (and higher-priced) dairy for the same items. Now my old category is technically wrong, and I have to decide whether to edit it, split it, or just let it drift into inaccuracy.

Read post →