RSSAmplifier

Blog

Kiran Rao

Hi, my name is Kiran.

kiranrao.caRSS feed ↗6 posts

Latest posts

How I survive red eyes

This is my guide to surviving overnight flights in economy. Do you fly business? Great, you already have a better chance of sleeping. There may still be a few helpful nuggets. I mostly fly economy so this guide is economy-focused. My goal is to sleep on the flight and wake up rested enough to have a good day at my destination. I consider myself successful about 2/3 of the time. Here are the 5…

Software estimation uncertainty principle

When asked, engineers often say it’s impossible to predict when their project will ship. I disagree. It’s possible to estimate and ship a project by a due date. As the due date approaches, progress is inevitably slower than expected. This doesn’t prevent shipping on time. It’s instead a prioritization decision. Which is more important: shipping by the due date or completing the remaining features?…

My .gitconfig file dissected

This is my .gitconfig 1 . Many are like it, but this one is mine. It’s not long. It’s not complicated. But it configures my workflow’s most important tool. I will dissect the file to better understand how git works and help the reader improve their own workflow. [ user] name = Kiran Rao email = hi@kiranrao.ca signingkey = AAAAABBBBBB [ gpg] program = gpg [ commit] gpgsign = true [ alias ] co =…

Changing tires at 100mph: A guide to zero downtime migrations

As a backend developer at a mobile app company, a common task was migrating a database schema. This could be to improve query performance, change column names/types, or adapt data to new use cases. While this may seem like a straightforward set of SQL commands, it becomes a complex choreographed dance to be achieved with zero downtime. The steps are as follows: Create the new empty table Write to…

One engineers quest for the perfect t-shirt

In school, I moved a lot. And by a lot, I mean 3-4 times per year. Throughout the process, I discovered what I valued, and what I could live without. As I whittled away my stuff, I noticed my life improving. Cleaning became faster. I stopped buying junk. I stopped wasting time. I found there was a name for this: minimalism. A bunch of these “minimalists” also wore the same outfit everyday. The…

Setup a development workspace with a sparse bundle

A sparse bundle is a macOS file that stores the contents and structure of a full file system. When mounted, macOS will create a logical volume allowing you to access files the same way you would a USB stick or SSD partition. There are a number of advantages to having your development environment setup within a sparse bundle: Keeps projects together in one place. If you work for multiple clients,…