If you've been following my recent blog posts, you'll know that I have been working on moving into the mobile application development industry. I've had a few experiences in the past few weeks that might interest anyone else looking for iphone development jobs. Your experiences may vary.
So where did I start looking for iPhone jobs? The fast and dirty answer is craigslist. The long answer is workopolis, kijiji, then craigslist. Why is it a long answer? Basically I went in looking for full time employment. I figured there were a few shops out there that have built apps for the BlackBerry who want to cash in on the iPhone's popularity by porting their apps to the iPhone. I thought these shops would want to hiring 2 or 3 developers full time to be a part of their 'iPhone' team. Fair enough, right? Not so much. From what it looks like, they want to bring in contractors to work on the application. Now what I don't know is what they do with the contractor afterwards. My guess is that they either keep him/her on indefinitely as a contract developer, or hire them full time, or once a full time member of the team is caught up on how stuff works, the contractor gets canned. The getting canned part is another reason I don't like contract work.
So what about contacts? What happens when you make contact with an "organization" via craigslist. In my experience, the ones that want someone right away get back to you within a few hours. Wait wait wait... Why was "organization" in quotes? Well there is the odd time that an individual with an iPhone app idea will post job on craigslist just looking for iPhone developer(s) to code up their idea. This often ends in a discussion of the idea along with rev-share as the payment plan. Clearly these are not opportunities that I'm looking for so I tend to ignore those. You can tell which ones are which just by looking at the job post.
So after they contact me about an interview, I usually set up one as soon as possible and start preparing for the interview. My preparation consists of looking over what I have already done, and then reading as much as I can about stuff I don't already know. There is only so much I can do with the time I have. The time comes when I meet with these potential employers. They give me their corporate elevator story and then ask me a bunch of questions about what I've done and where I'm going, and my experience. Then go on to ask me specific questions about my experience. Typical interview BS.
The good stuff comes when they ask me the technical questions. This is probably the most gratifying moments for be because of these employers ignorance. They look at my resume and see that I finished up school in August, and think I'm some noob that has never seen a line of production code. They forget that I not only worked the 3 years I was in grad school, but I worked with absolutely terrible code for those 3 years. I know what to do, and I also know what NOT to do when it comes to production code.
Then they ask me if I have any questions. This is where things get interesting. Again, playing to their ignorance, I start asking about specific development techniques that are generally practiced in real development shops (commenting code, version control, design patterns, etc) and you'd be surprised how often this stumps people. I try not to come off as some arrogant jerk, but if they are going to look at me as some fresh out of school dev noob, than I have to make it a point to let them know that I know what I'm talking about.
I do sometimes get the feeling that this technique of slamming the potential employer might be backfiring on me though. I've done two interviews that had real potential and I'm still waiting on hearing back from both of them. The one interview I had a while back (a month ago now), I had friends within the company that said my interview went well, but I didn't have enough experience with exactly what they were doing. The job description didn't specify any experience for the particular task they were interviewing for. Oh, and they did say I was brilliant.
The other interview wasn't that long ago, but I messed up on 1 of their 4 technical questions, so I don't expect to hear back from them. If I do hear back from them, great. But I'm not going to hold my breath, hoping they see the potential and take a chance on me.
Surprisingly, I didn't get that many questions about Objective-C. The interview that I messed up asked me 1 Objective-C question that I nailed, but than the rest was theoretical. You'd think that for an iPhone dev job that it would be a barrage of questions about memory management, NSObjects, the Cocoa Touch Framework, and so on. But not really.
Salary expectations? Go high. Never low. If you think you're worth a certain amount, go for that amount and then if they decide to offer you the position, the bargaining can begin. That being said, you are unemployed until you sign a contract! I can not stress that enough. You will look like a fool if you call back a week later asking if they've made a decision. A lot of you might disagree with me, but iPhone developers are NOT a dime a dozen.
Until very recently, the Mac development world was a tiny tiny market. There were a lot of people going directly to the Microsoft side or the web side because that's where the money is. There were a very limited number of Mac specific developers out there that then got a head start on this iPhone thing. So if they think they can find better, and then continue to interview candidates, you must continue to apply for jobs you find on craigslist (or wherever you look). If they realize the other applicants are not nearly as experienced or as dedicated as you are, and try to contact you a month later, the smart employers would have hired you by then. And you want to go with a winner in this market. Not the losers. They know you're looking and you should know they're still looking. Don't be passive. If you really want to work there, be aggressive of course, but not obnoxious aggressive.
What does help is a portfolio. If you have a list of apps that you've worked on on your MacBook (pro), bring them to the interview. If you can demonstrate that you at least know how to pop open Xcode and create a Hello World in IB, you're ahead of many software developers out there. Might not land the job, but they'll give you a second look. I keep a portfolio of my work on my blog, and I have been taking screen shots of the iPhone apps I develop and throwing them up on flickr. Just today I figured out how to embed a slideshow in my portfolio from my flickr set which holds iPhone dev screen shots. I hope it works for my interviews.
But yeah, the moral of this blog post really is to know your shit, ask real dev questions, and never stop looking until you sign something.