Why We Hire Great Developers, Not Great Mobile Developers

Hiring mobile developers is tough. There just aren’t that many of them out there. The technology has been around for about eight years now but there is still a shortage. It seems that some schools have caught on and are teaching students the ins and outs of being a mobile developer but for the most part graduates seem to only have a course or two of mobile dev under their belt. Folks who have been out of school for a longer period of time have played with iOS or Android in their spare time but far and wide have limited experience. Meanwhile, the mobile devs who are out there are highly sought after and held onto tightly once they’ve found a home. So what does a mobile app company do?

Our strategy at Runkeeper has been to hire great developers, not necessarily great mobile developers. Sure, if a great mobile developer comes knocking on our door we’ll take ’em, but that’s only happened once or twice. For the most part, we take it upon ourselves to train employees on the job. Developing mobile apps is different than writing server code. It’s different than HTML. It’s certainly not assembly. But as our CTO, Joe once told me, “There’s only so many ways to write a for loop.” It takes many years to teach someone to code, but once they know it, people can learn mobile in a short period of time. As developers, we are constantly challenged to learn new API’s, integrate new SDK’s and sometimes learn new languages. Taking on mobile isn’t all that different.

What they bring to the table

No, these folks won’t immediately know the ins and outs of GCD, but you’ll quickly learn that if you run all your DB queries on the main thread, iPhone 4s will not respond quickly. Getting up to speed on iOS or Android is actually pretty quick if you have a good development background. Many of the same principles of web and development apply. Page load time and responsiveness is very important. You have to consider different screen sizes, it’s consumer facing, etc.

This same approach has shined through in our co-op program as well. We typically take on a co-op or two out of Northeastern each semester. These developers tend to have limited mobile dev experience but come in enthusiastic to learn new things. That enthusiasm, on top of a strong foundation, ramps people up very quickly. At Runkeeper we ask our developers to write for both iOS and Android, as well as our Java-based backend. We are truly Full Stack. Developers who come in with experience in other areas are able to find comfort in familiarity while they ramp up on a new technology.

Our approach to training

I’m a big fan of almost immediately throwing new developers into the deep end. Leave it up to them to prove they can swim. We typically give new hires ownership over developing a new feature, which usually takes two to three weeks to build. Sure, we provide the appropriate amount of oversight to make sure they come out on top. But after coming out of that first project they’ve got the confidence to take on any other new technology we throw their way. Most people are coming from a world where it took six to twelve months to see their code go live. Startup and mobile life doesn’t allow for that. We try to push out new releases every month. That means that new hire’s first project is in the armband of friends and families shortly after joining the Runkeeper team. The short turnaround makes people excited and eager to learn more and ship more.

There are some areas that require a bit more help than others when transitioning folks into the mobile mindset. Dealing with multiple OS versions and handling deprecated API calls takes a while to learn. So our early code reviews focus on that area. We rely on more experienced mobile developers to make sure appropriate methods are being used. Inevitably things slip through the cracks. After the first time you cause 20k crashes because String.isEmpty() isn’t available before API 9 on Android, well, you get better about checking each method you use (not that I know personally or anything…).

Mobile developers are in short supply, but if you have the right team put together you can quickly get web and backend developers up to speed and shipping scalable mobile apps. The experience they have from working on other systems not only qualifies them for mobile dev roles but also helps infuse vast knowledge across a team.

If you’re a developer itching to get inside a mobile startup, don’t sell yourself short. Oh, and we’re hiring, so get in touch!