Featured
TDD Mocks Need Love Too
“Make it work. Make it right. Make it fast.”
Exploring Sealed Classes
“Please fasten your seatbelts and return your tray table to its full upright and locked position.”
Uncle Bob Says
“The founding documents of computer science are documents that prove that there is no finite mechanism for deciding if a program can even be written.”...
Learn New Things
“I’m not afraid of storms, for I’m learning how to sail my ship.” - Louisa May Alcott
All Stories

The Good Fight
“Mom, you did real good. Love ya.”

The MVP/MVVM Conundrum
So here’s something I think about frequently. We hear so much about clean this clean that. Where does this go. Where does that go. Here’s...

An Experiment in Test Driven Development
“Make it work. Make it right. Make it fast.”

Test Everywhere
“While you should archtitect your applications very thoughtfully, the limitations of the tools shouldn’t dictate your application architecture.” - Frictionless Android Testing: write once, run...

Why Use Two IDEs?
Android Studio is a great IDE. And so is IntelliJ. But why use IntelliJ for developing Android Apps if we can’t do any Android related...

Retrofit and Coroutines
I was thinking about enqueue vs execute in Retrofit. One does it’s own threading and the other just calls the api. So if I want...

Adding Dagger2 to Android
Dagger2 is a powerful dependency injection library. However, it can be confusing for the first-time user. And unless things are created in the correct order,...

Method to Extension
Suppose you have some Kotlin function that takes an argument and you want to convert it to an extension. There’s a keyboard shortcut for that....

Cartesian Confusion
I was working on a fun Java project the other day. Part of the project involved moving values in a two-dimensional array. The code for...
