One of my former students recently wrote me asking about how to get into app development. I’ve thought pretty extensively about how to do this (obviously, app development is what I do). So, I thought I’d write a summary of my advice, and leave it here for anyone interested. I don’t go into your usual run of the mill job hunting techniques — other people have written more extensively and eloquently on those topics. In a previous post, I covered the sort of skills you’ll want to develop to be an effective programmer, so this post won’t go into any technical stuff either. This is a mobile specific, where-to-start-looking sort of post, and just represents what I consider to be an effective path into mobile development starting from an in-school or just-out-of-school perspective.
First, let’s start big picture: where do you want to be? What part of the country? Unfortunately, there’s not a huge amount of choice here; tech, and mobile in particular, tends to cluster. San Francisco and Boston are the main places that would have available jobs for new mobile developers. Increasingly there are places in NYC, as the city is trying to draw more tech entrepreneurs, but last I heard, it’s still not quite a hub like Boston and SF are. Seattle is also up and coming, as is Austin, and Chicago is making gestures in that direction. Most other places, though, probably won’t be as good of options.
What type of company you want to work for can also influence where you look. Most of the consumer facing app companies are out in San Fran, while many of the more ‘business to business’ (‘B2B’ in MBA parlance, or perhaps ‘enterprise’) companies can be found in Boston (which is not to say the the two cities are exclusively focused on one or the other). It can be alluring to say you work for a company that all your friends have heard of, but ultimately, the challenges for both types of companies, at least from a developers perspective, are the same.
Types of Companies Looking for Developers
But let’s look at companies in more detail. There are two types of companies doing mobile right now: service companies, and product companies. Think of service companies as mercenaries: a customer asks them to build something, they build it. Product companies have a product or set of products that they are building for themselves, and selling to customers or marketing to consumers. The types of companies you’ll want to look for are: very small product companies, very large product companies, or medium to large services companies. Other types of companies are generally looking for senior developers.
Good targets for very small product companies would be companies in various types of entrepreneurship competitions: Mass Challenge, Tech Stars, the like. These companies are usually started by business-y types, or developers who don’t have mobile experience. The reason they’re good targets for junior mobile devs is that if you can show them a certain level of competence and bite the bullet on salary/benefits, they’re happy to pay you to learn the rest of the skills you need. This is pretty much what I did when I was starting out. After that first job wound down, I was able to speak to larger companies with confidence, and ended up at a larger sized mobile services firm. Medium sized product companies generally have the money and resources for senior devs, and don’t have the desire to hire someone who will learn on the job. Large product companies (Facebook, Google, Amazon, Twitter, the like) can occasionally be willing to hire more junior devs, but like to bring you in for an internship first, or make you jump through a ton of strenuous hoops.
Small services companies are often the same way: they need senior devs, and are willing to pay for them. Medium and large services companies, on the other hand, generally have enough senior devs, and really need low cost junior devs in volume. Now, that can often come with a caveat: they can expect long hours, and there’s usually not a ton of creative input on your part (this was not my experience when I worked for a service company, but I’ve heard from friends, coworkers, and people I’ve interviewed that this can be the case). As a result, turnover in such businesses tends to be high, and the working environment can be suboptimal.
The best thing for a fresh-out-of-college-junior-dev is probably a medium sized product focused startup, maybe a couple years old, that’s been through a round or two of investment. That’s sort of the gold standard in the industry. They often have great working environments, great benefits, and great people. But, they tend to be wary of younger, less experienced developers, even should the applicant be stellar otherwise. Not impossible, but still might be a reach if you’re new to the business.
Consider getting a recruiter. They’re trolling all over LinkedIn, and pretty much everyone uses them. Join the iOS Developers’ group, and ditto the Android group, put your mobile experience front and center, and wait. They’ll be all over it. You can also get recruited on StackOverflow’s Career 2.0 service. Answer some questions on SO, get a reputation, link to some of your open source work, and pretty soon you’ll get stuff flowing in there too.
Show off your work
Mobile companies are almost always hiring to fill a position ASAP, meaning within the next month. Since mobile is moving so quickly, most companies are not going to wait the better part of a year for a developer, so if you’re still in school and have more than a month or two left, it’s probably better to wait. If you’re just looking for an internship, which is an excellent way to get into a larger/big name company by the way, then start looking early, as they can be rather competitive.
And there you have it! Develop your skills, and make a plan. Decide where you want to live, and what kind of company you want to work for. Be prepared to start small, and leverage your experience to leapfrog into better opportunities. But most of all, keep building things, not least of all a community of developers around you. This pays huge dividends in the long run.