Writing
Articles
Essays on thinking clearly, working for yourself, and doing real work while AI rewrites the rules. Two decades of them.

Automating Screenshots: Simplifying Internationalization on Android
This post outlines how you can simplify Android internationalization by using the screengrab tool to help automate your QA process, per locale.
2016.02.11Read →
The Three Buckets (The Rule of Thirds)
Making everyone happy is impossible. Using the Rule of Thirds system you can help eliminate negative cognitive load in under 10 seconds.
2016.02.05Read →
Why Podcasts Have Become Popular
Podcasts exploded for the same reason Netflix and Uber did: they're on-demand. Live radio never had a chance once we had a choice.
2016.01.03Read →
Staying Sane and Productive While Working Remotely
I've worked remotely for over 10 years. I've comprised a list of tips that will help you stay sane and productive while working remotely.
2015.12.30Read →
Genymotion Will Not Start Virtual Device
Genymotion failing with VERR_SUPLIB_OWNER_NOT_ROOT on Mac? It's a permissions issue, fix it with diskutil repairPermissions or a manual chown.
2015.12.18Read →
Killing Your Project Quietly – The NIH Assassin
Not Invented Here syndrome quietly kills projects -- the math on why building your own analytics or monitoring tool costs far more than buying it.
2015.12.09Read →
Standing Desk – Three Years Later
I've been working at a standing desk for over 3 years and this post outlines what I've learned, tips and tricks and the path towards a real standing desk.
2015.11.23Read →You Need a Status Page
If you don't have a status page, you're failing as a company. You need a status page. I'll explain why in this post, learn why customers are leaving you ...
2015.11.10Read →Free Android Development Videos
New free Android screencasts on Caster.io covering RxJava, Timber logging, build variants, CircleCI, Espresso 2, and Android Studio shortcuts.
2015.10.27Read →RxJava with AIDL Services
A 3 minute read that demonstrates how to use RxJava with AIDL Services in order to make the interaction with AIDL much cleaner and easier to consume.
2015.09.08Read →Quick and Easy StateListDrawables in Android with ONE PNG
Skip exporting a PNG per button state. Build an Android StateListDrawable from one PNG at runtime with a small DrawableUtil helper class.
2015.06.29Read →Why You Should Use a GIT SHA in Your Crash Reporting
Stop guessing which release a crash came from. Embed your git SHA in Crashlytics via BuildConfig so every crash traces to an exact commit.
2015.06.24Read →