Writing
20 posts from 2026.
2026 · all posts
Jul 16, 2026 · 07:0013 min
I Was Measuring the Wrong Weights
Two weeks ago I said the DGX Spark's bandwidth wall was physics, not a driver update — fast or big, pick one. Then I ran a 122B model on the same box at six times the speed of a 70B. The law was right. The number I kept feeding it wasn't.
Jul 4, 2026 · 06:009 min
I Bought the GPU Anyway
I bought Andromeda, a DGX Spark, to fine-tune models — but first I owed my last post a rematch. I re-ran the same local/free/paid LLM inference benchmark on 120 GB of Grace-Blackwell instead of a CPU NUC. It fixes the one thing the NUC got fatally wrong, hits a bandwidth ceiling I didn't see coming, and makes clear why the real reason I bought it isn't inference at all.
Jun 27, 2026 · 17:007 min
Reading Android Bench: scores, cost, and the efficiency trap
Google's Android Bench scores LLMs on real Android engineering tasks. A look at what the June 2026 leaderboard actually says — why the top is a statistical tie, where the real cost-efficiency winners are, and the trap hiding in the cost and latency columns.
Jun 24, 2026 · 21:0028 min
Putting an AI Agent Inside an Android App with Google's ADK
Google shipped ADK for Android in May. I built a Compose app — clean architecture, MVI, Hilt, persistent chat history — where a Gemini agent calls real on-device functions, and hit every sharp edge the docs don't mention.
Jun 21, 2026 · 21:0020 min
Android App Functions: turning your app into a tool an agent can call
A hands-on walkthrough of Android's experimental AppFunctions API. I build a small but complete notes app, expose four functions to on-device agents with @AppFunction, and trace exactly what the KSP compiler generates and how the system discovers and invokes them.
Jun 16, 2026 · 22:0024 min
Developing for Foldables — making your Compose UI fold-aware
Part 2 of the foldables series. We build an adaptive media player in Jetpack Compose that reacts to tabletop and book postures with Jetpack WindowManager, picks list-detail layouts with window size classes, and verify all of it on the Pixel Fold emulator.
Jun 12, 2026 · 04:006 min
From Window Seats to Boarding Gates
Written at 4 AM at a boarding gate, waiting for my first international trip with my mother. On how travelling with family has changed over the years — from 16-hour train journeys to nani ghar with comics, board games and window-seat fights, to flights, iPads and international itineraries.
Jun 5, 2026 · 21:004 min
The Routine Changed. So Did My Mind.
A few weeks into waking up at 6AM, I have enough distance now to say something I couldn't before: this wasn't just a schedule change. It quietly changed how I think about my days.
Jun 3, 2026 · 22:0013 min
Continuous Content, Gated Code: A Release Process for This Site
This site deployed on every push to main — blog posts and half-finished features alike. I wanted the opposite for code: a feature ships only when I cut a release, while blogs keep publishing the moment they merge. Here's the GitLab pipeline that does both, and the things that broke building it.
May 31, 2026 · 10:0027 min
How Claude Built a 1,500-Entry Fingerprint Dictionary Using 153 Parallel Agents
A deep technical look at the multi-agent workflow that scraped the entire awesome-selfhosted dataset — nine runs, every architectural failure, exact agent counts and token numbers per run, and how it ended with Python bypassing agents entirely.
May 30, 2026 · 09:009 min
I Couldn't Make Sense of My Own Homelab. So I Built Orbiter.
I had Portainer running but it made figuring things out harder, not easier. And there was no single place to just click a link and open a service. I described the problem to Claude Code and it built me exactly what I needed.
May 25, 2026 · 09:005 min
I Was a 2AM Person. Here's How I Fixed That.
For over a decade, sleeping late was just how I was wired. Quiet nights, no interruptions, my own pace. Then life required 6AM, every day — and I had nothing to give. This is what I did about it, what actually worked, and what didn't.
May 21, 2026 · 22:0012 min
Polaris Under Pressure: Benchmarking a 13th Gen NUC as a Production API Server
I put the Nexus backend under four progressively harder k6 load tests — smoke, stress, spike, and soak — while watching every CPU cycle and megabyte on Polaris. 300 concurrent users, zero failures, 40% CPU headroom. Here's what a NUC can actually handle.
May 16, 2026 · 09:005 min
Polaris Grew Up: From LLM Box to Personal Server
The last post ended with Polaris's role shifting to embeddings and batch work. What actually happened was more interesting — it became a proper personal server in a single afternoon. nginx, WireGuard, Docker, GitLab Runners, and a weekly AI-powered security audit.
May 13, 2026 · 22:006 min
What Free LLMs Actually Cost
I bought a NUC to run local LLMs and escape API costs. Then I tested local, free cloud, and paid cloud against the same prompts. The result wasn't 'pay for inference' or 'run it yourself' — it was that 'fast and free' isn't a quadrant that exists right now, and that has implications for anyone planning a personal AI setup.
May 9, 2026 · 09:007 min
The Agent Wrote the Code. I Wrote the Prompts. Here's the Full Story.
I've spent months building Android apps — todo, drawing, live wallpaper, launcher, Kotlin Multiplatform, full-stack with Ktor — entirely with Claude Code, without writing a line myself. This is an honest account of what worked, what didn't, what it cost, and what I think it means for how software gets built next.
May 7, 2026 · 09:006 min
Polaris & Hermes: Two Intel NUCs, One Personal Multi-Agent Setup
I had two old Intel NUCs, an obsession with AI agents that actually do things, and a decision to make about which machine gets which job. This is how I split them — and why the answer wasn't obvious.
May 2, 2026 · 10:007 min
I Gave Claude Code a 33-Page Spec. It Built a Production Android SDK in 12 Minutes.
Part 1 of 2: An experiment in using an AI coding agent to autonomously generate, publish, and document a complete Android analytics library — from a technical design doc to a live JitPack release.
Apr 24, 202610 min
Android Architecture Patterns in 2026
A practical look at MVI, MVVM, and clean architecture in modern Android apps — when to use each and what the tradeoffs actually are.
Apr 22, 2026 · 09:0027 min
Type-safe navigation in Compose — the right way to migrate
Navigation 2.8 replaced string routes with serializable classes. Here is what that migration looks like in a real app, including nested graphs, deep links, and back-stack manipulation.