I’m an Android developer

… and a university dropout, who traded formal education with practical experience and got employed because of it.

I’m 26 years old and work as a senior Android developer at the biggest telecommunications and broadband company in Denmark — not because I have a fancy education, but rather a ton of practical experience. Here’s my story.

The beginning

My interest for Android development tracks back to 2007 and the first “milestone” builds of Android. This year will mark the release of Android 8.0, currently codenamed “O”. How time flies…

I didn’t have an Android device back then, so a few hours of emulator fun once in a while would have to suffice. The OS was pretty barebone, but still quite interesting and I probably enjoyed the API demos more than I should. The OS images were updated quite regularly, and it was fun to see how it changed from D-pad and keyboard navigation to a touch based user interface.

Much has changed since then. We’ve seen thousands of new APIs being added; hundreds of APIs being deprecated or changed; added support for tablets and a variety of display sizes; the “fragmentation gate” and support library (or libraries); the fall of Eclipse and the rise of Android Studio; the introduction of Android for smart watches, TVs, cars and even “IoT devices”.

As a developer, you need to keep up with all of this. The best way to learn and stay up to date is simply to do something. I’ve done a bunch of app projects. Some were minor and never seen by anyone else, others were medium or large sized apps with thousands of downloads.

These days there’s an app for everything, meaning it’s much harder to create something that you can genuinely be excited about. That wasn’t the case back when I started on Android development. I simply had to find a use case not covered by the OS or the limited number of third party apps on Android Market — and build an app for it myself.

And so I did. Several times. Those were the days!

Publishing on Android Market

I started publishing simple apps on Android Market in 2010 or 2011. My apps quickly received tens of thousands of downloads. The limited number of apps on Android Market (~50,000) allowed for very easy organic growth as long as you had certain keywords in your app title or description. It was pretty surreal.

My first useful app intercepted incoming SMS messages and displayed them in a popup dialog with contact info and a text field for quick replies. This was a feature I had been used to having on my non-Android phones, so it was only natural for me to have it on Android as well. Here’s what it looked like:

SMS popup app on Sony Ericsson’s first Android phone, the X10

Quite simple, right? Well, yes, but it allowed me to touch upon a number of areas of the Android SDK: Intents, system broadcasts, activities, window flags, content providers, contacts, image loading and of course hidden / undocumented APIs (SMS).

I’ve had a number of small personal app projects like that, and each one have been rewarding and useful in one way or the other. Also had a few small freelance projects through the years, and that obviously also helped building up a reputation.

During the summer of 2011, I bought my first Android tablet because I was going on vacation and needed some sort of entertainment on the airplane. My choice fell on the Acer Iconia Tab A500. It was a beast and perfect for watching movies. 10.1-inch capacitive display with a resolution of 1280 x 800 pixels. Nvidia Tegra 2 chipset. 1.0 GHz dual-core Cortex-A9 processor. 1 GB RAM. It even had a freaking full-size USB port and HDMI out!

Obviously, I needed some way of browsing my movies in a nice and easy-to-use interface once they were on the tablet. I opened up Android Market and — to my surprise — there was nothing of use for me. There were file managers, sure, but I wanted something where I could actually touch the movie covers and really make use of that large display. Something like XBMC (now Kodi) or Boxee, which was also based on XBMC, but with a nicer and more simple UI.

It was a golden opportunity to create something that was missing from Android Market. On July 14, 2011, Mizuu Movies was born, later known simply as Mizuu due to added support for TV shows.

Here’s what it looked like back then:

The first version of Mizuu Movies on my first Android tablet, the Acer Iconia Tab A500

Beautiful, right? Well, not so much. But for the time, it was actually pretty good. Keep in mind that no one really knew how to design Android apps, let alone tablet apps on Android. There was no Material Design back then, so everyone was on their own. I continuously reiterated the design, though, and as a result Google’s design chief Matias Duarte, the guy behind Material Design, wrote a post about it on Google+.

Fun fact: The app used the now deprecated Gallery widget. Most people probably won’t even know what it is. It was essentially a center-locked horisontal list without view recycling. As you can imagine, its memory usage and initial render time would increase as more items were added. As a result, I quickly learned about the importance of view recycling and tricks like the view holder pattern. Very few people knew about that pattern and implementing it really made a difference.

Let the workload commence

After Mizuu was released, I started spending a lot more time on Android development, and just a year later I was working at least full-time with my own app projects (primarily Mizuu) while juggling my courses at IT University of Copenhagen.

Over the next few years, I focused more on Android development and less on my education, only handing in the most important assignments and showing up for exams. It wasn’t unusual for me to have work weeks of 80–100 hours, while keeping up with my courses. I ended up changing my circadian rhythm to the opposite of everyone around me. I woke up around 5–6 PM, ate dinner and started working through the night until noon the next day. Rinse and repeat. For several years. It was awesome.

Punch card of GitHub commits for the Mizuu repository.

This intense workload meant I was learning and improving at a rate unlike most other people. What full-timers spent a year doing, I could do in about four months. Put differently, my sole work effort equated to that of roughly three full-timers. I made shit happen.

Mizuu was downloaded more than 250,000 times in total despite the app having a very narrow audience. It was well received with an average rating of 4.7 - 4.9 during the years of active development with ~1,500 reviews:

Average cumulative rating of 4.7 / 5.0 in June 2014. Screenshot from Google Play Console.

The sheer size of the user base meant I received many daily emails and feedback from thousands of people during those years. I made a virtue of replying to every single email and comment, often within minutes. I listened to every bit of feedback and implemented requested changes and features. I was eager to help if users were facing issues. As a result, I have email threads with single individuals of several hundred messages.

As you can imagine, it was hard to keep up with and I spent a lot of time on it. Time spent writing emails was time spent not developing — and well, I’m a developer, so that’s not exactly ideal. It was also pretty stressful, and it got to a point where I was constantly thinking about not letting down what was essentially a bunch of strangers on the Internet. I simply had to continue my high level of support while also staying on top of development and continuously setting new standards for user experience and app design.