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.

Mizuu in its final iteration, running on a Nexus 9.

The combination of a high workload and a constant influx of new emails started taking its toll on me. I was experiencing just about every possible stress symptom at once. I’ll avoid going into too much detail about it, but suffice to say my situation wasn’t sustainable. I needed to make a change, somehow.

At this point, I was still studying computer science, but I was sick of school in general and I wanted to go all in on Android development. I really wasn’t making any money on Mizuu, so going all in on that wasn’t a viable career path. I needed a job and I needed a mental break from Mizuu.

I ended up halting all development on Mizuu and applying a filter to my inbox to ignore all emails about it. It currently resides as an open source project on GitHub with 800+ stars.

The first full-time job offer

In December 2014, I received my first full-time job offer with a salary of 420,000 DKK / year (~65,000 USD). I couldn’t believe anyone was willing to pay me to do what I love doing — and that amount of money was unlike anything I had been used to.

I was eager to accept, but had to wrap my head around the thought of dropping out of school. It was terrifying and one of the most frightening things I’ve done in my life. Strangely, however, it was also something I genuinely felt was the right decision for me to do.

I’m sure going through formal education and getting a degree is the best decision for a lot of people, but I’ve honestly always felt education is inferior to practical experience and being able to show other people that you’re capable and good at what you’re doing.

I accepted the job offer and quickly noticed a few things I really liked about having a job compared to studying at school:

  • Practical work is much more exciting than theoretical work
  • Being free when you left work was unbelievable — no homework!
  • Money provides a lot of freedom and I’m a sucker for freedom

I was doing pretty well at work and received my first salary increase just a month after I started. And another one the following month. After two months, my annual salary was at 540,000 DKK (~83,000 USD).

Half a year later, I had an annual salary of 660,000 DKK (~101,000 USD).

My years of hard work and long nights were paying off. I had a high paying job and not once was I faced with the need for a formal education.

I later found that the initial salary increases were made in an effort to keep me working there. They were afraid of losing me. This taught me a very important lesson. As a skilled software developer, you’re a valued asset to a wide variety of companies and there’ll be situations where you can pick and choose where you want to work.

This also altered my mindset a bit. I started thinking about the concept of supply and demand. It turns out there’s a limited amount of people in my country with my specific skillset and the demand greatly outweighs the supply. As such, I was able to negotiate a higher salary on a couple of occasions.

Changing jobs

I left my first job in April last year after being there for just shy of 1.5 years. I took on a new position at TDC Group the following month.

Being available on the job market as a senior Android developer is pretty wild. Sort of like being a rockstar. I was contacted 10–15 times by recruiters in the first week and could pretty much pick the place I wanted to work.

In addition to the recruiters, I spotted a few job postings that peaked my interest. Normally, you’d have to send along your resume, but — being a bit cocky — I didn’t feel like spending the time on stuff like that. I mean, they could just look me up on LinkedIn or search for me on Google. So that’s what I wrote to them. Did it work? Yup. Big time. I was offered both positions and ended up going with the one at TDC Group.

During my month of free time, I picked up some sparetime Android projects again. I created a simple open source Android library. I also started working on a new open source app — based on Mizuu — called Jolly and I was quick to tell everyone about it. That was a mistake and one I regret to this day. Reality caught up and I simply didn’t have time for sparetime projects after starting my new job. I let down a number of people who believed in me.

Present and future

I still work at TDC Group. It’s a big company with thousands of employees and it’s something you have to get used to. Big companies usually work considerably slower than smaller companies. I tend to look at this as a challenge. If I can make an impact and change within a large organization, there’s no stopping me.

After a year of employment, I’m actually beginning to think I have made a difference. It’s still a bit too early to spill the beans, but I can say this much: I’ve been a driving force behind a substantial change in the future commercial strategy of one of the largest companies in Denmark. In my book, that’s pretty cool and something I’m proud of.

I know I’ll continue to work with Android development for as long as I can keep up with the latest and greatest from Google and the fantastic Android community. When that happens, I’ll probably move on to a mangement position where I can motivate and guide other people to change the future. One line of code at a time.

When writing this, I really had no idea where to start or end. I also wasn’t sure what to include and what to leave out. I would’ve liked to touch upon some of the things I would’ve done differently, but it doesn’t really fit anywhere in the above article, so I’ll leave that for the comments, if anyone wants to know.

If you have any comments or questions, feel free to post them and I’ll do my best to answer. I wrote this article to help other app developers and give a bit of insight into how I started developing for Android and how I transitioned from a sparetime developer to employment.

Thank you for taking the time to read my story.

Senior Android developer at YouSee / TDC Group. Creator of the popular media center application Mizuu for Android smartphones and tablets.