Year in Review (2016)

In case you missed it... here is all the public activity I've done in the last year.


  • RxJava's repeatWhen and retryWhen, explained

    I found repeatWhen and retryWhen to be a couple of the most confusing RxJava operators, so I took the time to understand them (then write up my findings).

  • Unlimited vacation policies are inherently unfair

    I get into arguments about unlimited vacation policies with someone approximately once every other month, so it seemed prudent to write up my thoughts once and for all. (Sadly, this post has not stopped me from getting into regular arguments about the topic.)

  • How I write tech talks

    A few aspiring speakers had asked me about my process so I took the time to write it out.

  • Multicasting in RxJava

    A write-up of a misunderstanding of RxJava multicasting that bit me.

  • A deep dive into Android View constructors

    This article started off due to my annoyance with how few people understood the different View constructors, but ended up being far more detailed than I'd originally intended. It turns out View construction is complex!

  • Trello Android Schema Upgrades

    A short post about a fun schema system we have running at Trello.


  • Dependency Injection Made Simple (realm write-up)

    The basic idea behind this talk is that you are already using dependency injection whether you know it or not. It's a simple design pattern and it's better to understand it when you're using it (intentionally or not).

    This talk is a beginner-level introduction to DI. Most of it isn't even about specific frameworks, and when I do get to explaining Dagger, I only tackle the simpler aspects of it.

  • Common RxJava Mistakes (slides, video)

    A smorgasbord of mistakes I've personally made while learning RxJava (that I often observe others making, too). This talk is aimed at people who have used RxJava for at least a little while (a month or two).

  • What to expect when you're expecting to write an Android app (slides, video)

    An introduction to Android development talk I gave at the local GDG. Great for beginners, though as time goes on the information will grow more and more stale.

  • Efficient Android Layouts (realm write-up)

    A smorgasbord of tips that I use to write less Android code. It's all about maximizing the leverage you get out of the code you write, which is essential when writing large apps with only a few developers.

  • Jukebox Hero (slides)

    A silly talk about the Guitar Hero engine, which I know entirely too much about. In general, I find it fascinating when a set of rules (imposed by a game engine) are pushed to their limits for the sake of competition.

    For better or worse, there's no recording of this talk. But if you catch me in person I'll tell you all you wanted to know and way more.

Open Source

I haven't released any new open source libraries, but I still continue to maintain a few released in previous years.

  • RxLifecycle

  • navi

    The biggest change for these two RxJava-based libraries was updating them for RxJava 2.0.

  • victor

    Thanks to Romain Piel, victor now supports SVG -> Android drawable conversion. We're still using it at Trello because there's still no other automatic SVG -> Android drawable solution.

  • joda-time-android

    Not much has changed here, other than keeping the tzdata updated.


  • Translating an app for different languages with Dan Lew

    Internationalization and localization are underappreciated topics. I applied to speak about them at multiple conferences and they always wanted me to speak about something else. Thankfully, Fragmented Podcast had no such qualms about giving me a pulpit!