Iden Tumuhirwe
WritingWhatever's on my mind

Things I build, and things I just think about.

July 15, 2026 · 14 min read

Bun rewrote itself in 11 days. Everyone argued about the wrong thing.

The Bun-to-Rust story got told as Zig versus Rust, then as a fight about memory safety, then as a founder feud. I think all three framings miss it. The interesting part isn't the language they left. It's what the rewrite quietly proved about what code is now worth, and what it conveniently skipped.

Opinion · Bun

July 14, 2026 · 6 min read

The free AWS tier still wants your credit card. The new sandbox doesn't.

AWS Builder Center now hands out pre-provisioned, throwaway AWS accounts you can deploy real resources into, no personal account, no card, no surprise bill. It's the first genuinely card-free way to touch real AWS, and it comes with exactly the constraints you'd expect for something free.

AWS · Learning

July 10, 2026 · 5 min read

The YouTube algorithm stopped recommending and started herding

My homepage used to feel like it knew me. Now it's a Shorts shelf, three reaction channels I never asked for, and a Subscriptions tab that quietly drops half the people I actually follow. This one's just a rant, and I know I'm not the only one having it.

Rant · Internet

July 7, 2026 · 9 min read

What building SubTrackr taught me about three processes pretending to be one app

I built a subscription tracker to get past tutorial-level SwiftUI, and the actual lesson was that an iOS app isn't one program. It's the main app, a widget extension, and a Live Activity, each running separately and mostly unaware of each other.

Swift · SwiftUI

July 4, 2026 · 6 min read

What building a Slack clone taught me about Elixir

I rebuilt Slack's core loop in Phoenix to see if the 'Elixir is great for real-time' claim actually holds up outside a conference talk. Notes on channels, presence, and the two-topic trick that made the sidebar work.

Elixir · Phoenix

June 24, 2026 · 7 min read

The hardest part of a GPS camera wasn't the GPS

A field-documentation app that geotags and timestamps photos sounds like a location problem. It mostly wasn't. The actual work was burning legible, correctly laid-out metadata onto a photo of unknown size, unknown orientation, and unknown content, using nothing but a Canvas and manual typography.

Kotlin · Android

June 18, 2026 · 6 min read

The making of a library I built to stop parsing DRF errors by hand

Every Kotlin client I've written against a Django REST Framework backend ends up with its own slightly-wrong error parsing code, copied from the last project. DRF Error Handler is me finally writing that code once, publishing it properly, and being reminded that publishing is the actual hard part.

Kotlin · Open Source

June 6, 2026 · 7 min read

A fake phone for a protocol three carriers can't agree on

USSD still runs half the mobile money and airtime menus in Africa, and every carrier speaks a slightly different dialect of it. I spent late May and early June building an Android simulator so I could stop testing that dialect against a real gateway every single time.

Kotlin · Android

January 8, 2026 · 7 min read

S3, CloudFront, and a WebSocket that kept dying at exactly 60 seconds

Static frontend on S3, CloudFront in front of it, a WebSocket backend for the real-time parts. It's a standard AWS pattern right up until you actually wire it together, and then it turns out a CDN and a persistent bidirectional connection don't agree on much.

AWS · CloudFront

November 12, 2025 · 5 min read

SAP Service Layer will tell you something broke. It won't say what.

I've spent a good stretch of my career integrating against SAP Business One's Service Layer, and the thing nobody warns you about isn't the data model. It's that when something goes wrong, SAP's answer is usually a number, not an explanation.

Rant · SAP