One of the reasons why I’ve been mostly absent from this blog is that, together with a couple of very interesting people, I started a new company and we’ve been busy closing our Series A and getting things off the ground. More on this in another post.
This post is about mobile developers or, most precisely, about talent development in the mobile ecosystem. In the past few weeks I’ve been recruiting, I’ve learned a few things about the current state of the iPhone/Android developer ecosystem that I’d like to get your thoughts on.
My new startup is at the intersection of mobile, local, retail and advertising. We are taking a contrarian approach in this bubbly space born out of deep customer relationships. Because of this customer connection, contrary to many others in the space, we have a pretty good idea of what needs building. It’s one of those “they asked us to build it and are waiting with their checkbooks open” types of situations. This doesn’t say much but it sets up the problem.
For us, user experience matters a lot but distribution matters even more. Distribution is why we are not going to build the 113th mobile-local-retail-advertising app. There are plenty of apps that touch the lives of shoppers. Rather than competing with them, we want to help them create a better user experience and make more money, in that order.
No, we are not an ad network. The above two goals are impossibly at odds with one another when an ad network is involved. Giving the bottom portion of an app’s precious screen real estate may make the app developer some money but certainly doesn’t improve user experience. We are doing something that’s never been done before on the client side that, if we solve some very challenging problems in an elegant manner, can both generate substantial revenues for app developers and lead to a stickier and more engaging user experience.
Technically speaking, we’ll integrate with apps both through existing services they use as well as our own SDK. We need to do some serious jiu-jitsu in order to make app developers’ lives easy. There is low-level device/framework work. There is also fancy GUI work. It’s stuff that’s never been done before on a smartphone. It’s the kind of thing that can improve the user experience of tens of millions of people. It’s the kind of thing I need awesome mobile hackers for, starting with the iPhone and Android platforms.
Here are the three core rules that, for me, define awesome mobile hackers:
- They have done low-level mobile development. They don’t have to have worked on a mobile OS but they know and have rearranged the innards of mobile frameworks (or their desktop counterparts) such as Cocoa (Touch) on the iPhone and understand what it takes to do fast, efficient and reliable communication with servers. They have a thorough system-level understanding of how the device, the mobile OS, the high-level framework and the app coexist. This allows them, with hardly a thought, to power through the types of problems others post of Stack Overflow.
- They deeply understand end-to-end mobile app development and lifecycle and have built a number of mobile applications. This allows them to relate to and empathize with the experience of other mobile app developers. That’s why awesome mobile hackers build tech other developers find sexy.
- They are active in the ecosystem. They have lots of friends doing cool work. They know people on the iOS and Android teams at Apple and Google who will more often than not enjoy going out to lunch with them at a conference. They pay it forward. They contribute to open-source projects and mentor up-and-comers. This builds good karma, which invariably helps them out with life on the bleeding edge.
In the past few weeks I’ve come to believe that the iPhone and Android ecosystems are evolving in a way that fundamentally works against the development of awesome mobile hackers. This very much reminds me of the mid 90s when, as the chief architect of the first Web application server, I watched the explosion of the Web developer community. For a more recent reference, what I’m seeing in mobile from a talent standpoint is worse than the bubble in Ruby-on-Rails development. Here is why:
- There is too much money to be made in consulting. Apps are churned out on a conveyor belt. The focus is on speed and reuse so why bother learning hard things such as low-level mobile development? Non-visible features pay less because clients don’t appreciate them as much. On top of this, mobile devices are locked down to an extent, which limits the practical value of low-level mobile work. Few try it and why even fewer become great at it.
- On the flip side, many low-level mobile developers come from mobile OS backgrounds and, unfortunately, don’t like to build apps. Even when they do GUI work they tend to find it “below them.” This makes them blind to the perspective of app developers. Those are the guys that build wonderfully-architected frameworks that nobody wants to use.
- In this crazy environment of excess demand, developers get very, very busy and spend much less time connecting with their peers, contributing to open-source projects, etc. Skill development becomes almost entirely job-driven as opposed to personal interest-driven. Foundation skill development doesn’t pay and is therefore deemphasized.
- Conveyor-belt consultants, as opposed to long-term independent contractors or outsourcers, tend to lack appreciation of the ongoing lifecycle of an application post ship. Enough said.
- The awesome mobile hackers employed by larger shops are used as fire-fighters across many projects. They gain breadth and exposure but lose depth. They also lose the motivation and satisfaction of owning the building and shipping of products. This numbs the soul of a developer and is a topic many top geeks at consulting companies have discussed with me over the years.
Don’t get me wrong. Consulting shops are not the problem. The market has set up a certain incentive structure and people operate within it to the best of their knowledge and abilities.
What I’m noticing, however, is that many don’t understand the opportunity cost of dumbing down the work they do from the standpoint of their market worth, personal happiness and long-term career. With the benefit of experience across many companies, bubbles and crashes, I’d argue that:
- An awesome mobile hacker can make more money in an early-stage product company than in a consulting company but, more importantly, they’ll do this while having more fun and positioning their career better.
- Great mobile developers don’t understand how much their career is suffering by them not investing in becoming awesome mobile hackers.
If you don’t trust me, talk to a top recruiter or some of the top geeks at the companies you wish you worked at.
The fine print: if you’re an awesome iPhone or Android mobile hacker who likes to solve hard problems that have never been solved before and doesn’t get nightmares from the thought that tens of millions of people will use your code daily then, hell, yeah, I want you on my team.
[Update] I’d like to highlight a point from the comments below in response to some private questions. I am dead serious about giving $10K to the first person who introduces me to someone I hire and I mean that not just for these positions but for any position I am also using recruiters for. It’s only fair to acknowledge the huge value that the right referral can bring to a company.