Polymorphic Abstracts Encapsulated

I write about all kinds of topics I find interesting and worth sharing.


Having been relegated to working from home during the pandemic, I’ve been looking at more opportunities to get out. I live further away from the city, so most locations require commuting. Driving a car for these felt unnecessary, while transit is time-consuming. After reading about eBikes recently, I pulled the trigger. It has bridged the gap between biking, driving, and transit for me.

Service Codex

I recently picked up the Cocktail Codex. The book outlines how there are only six families of cocktails: the old-fashioned, martini, daiquiri, sidecar, whisky highball, and flip. This got me thinking - are there similar templates for services?

Upgrading a 2010 PC

Mid way through my first semester, I decided to build a gaming PC. While building my own PC likely wasn’t cheaper, I enjoyed the flexibility they could offer. This post walks through how I upgraded the system over the years.

Repurposing a Six Year Old Kindle

Last year, I upgraded to one of the newer Kindles. My 2012 Kindle Touch was starting to show its age. However, since the display was still functional, I was interested in seeing if I could repurpose it.


Gzip is a compression format widely used in HTTP networking. With gzip we saw over 10x reduction in the POST request body to upload our batched event data.

Factory functions in Go

Static factory methods are extremely powerful in Java. Here’s how factory functions are effective in Go.

Rx Preferences

Introducing Reactive SharedPreferences for Android.

Micro Gson

A minimal JSON databinding implementation on Android.

Expect the unexpected

Be sure to protect clients from passing invalid inputs.