Well, I’m immediately lying :). I’m actually just recently off of the job market. But what I’m going to talk about in this article is my process of hunting for a job as an iOS developer. Part of what I have to say is slanted from my background: Which is as a former computer science professor.
1) The Game: I’m fortunate to have a business advisor. Someone to talk to about the challenges of finding a job. He has more than once referred the job hunt as a
game. For the most part, I’ve not been able to relate to that idea, but in a few ways I do understand. In one way, like games are unreal, the process of finding a job seems unreal. I’m a very smart guy. I know that. I’m also very productive. But, how do I convince a potential employer of that fact?
2) Getting your foot in the door: Your first goal is somehow landing a first interview. How can you do that? Well, word of mouth is probably the best way. I can’t say that it has worked the best for me, but I believe in it. Do you know people who know others that are hiring? See if they can recommend you. I landed the job I’m working now through a recruiter. While I’m not the biggest fan of recruiters, I had worked one other job through this same recruiter, and I felt I should respect that existing relationship and followup when they contacted me about what turned out to be my present gig. Of course, the biggest slush pile is responding to advertisements for jobs. Do cover letters help or work? I don’t know. Two interviews that I had, that proceeded to coding challenges, I didn’t give cover letters at all.
3) Preparation: At the outset of this business of finding a job, or game if you will, I seriously underestimated the amount of time I should take in preparing for any specific interview. And now, I greatly value that interview preparation. And I mean preparation in the few hours before the interview. How should you prepare? Well, I’m glad you asked!
- Learn what you can about the company. I like to make up a list of aspects I like about the company. Actually, I typically do that when I’m writing up a cover letter, if that’s required. So, if you already have that list, look it over when preparing for your interview. If you don’t, then research it.
- Learn a little about who will be interviewing you if you know who that is. You don’t have to find out their home address and the name of their pets, but learn a few things about them if you can.
- Spend time reviewing your qualities. Yes, your qualities. Read your resume again. Look over your portfolio. Tune up your arguments about why you are the cool person you are, both technically and personally. Don’t believe it? Job hunt got you down? Talk to your best supporter.
- Make up a list of 5-10 questions you might be asked. When you get asked a new one in an interview and you are stumped, write it down in this list. Also, write down answers for the questions. For me, one of these questions was: “Why did you shift from academia to industry?” I advise not trying to offer your life story on questions such as these. Don’t lie. But you also don’t need to give them a thesis defense either. My answer to this question came down to “Because I needed a change.” Simple enough. And true.
4) Show up early: At least once, I showed up late for an interview. And I refer to myself as a very smart guy. Huh. Go figure. Don’t do this. Show up early. An hour early. Grab a coffee. Read a book. Do some work– e.g., finish your interview preparation at or near the location of the interview. Don’t be late. You probably won’t be able recover from showing up late.
5) The coding conversation: Often, I’ve run into two types of technical tests. The first one is typically a series of brief exam-like questions where they want to make sure you have a pulse. In this, it’s vital that not only do you know your stuff, but also that you can talk about your stuff. Don’t take this for granted. Make sure to make this a part of your regular repertoire. Go to meetups. Talk to other techies about programming. Talk to your wife, your boyfriend, your dog, your cat. Talking about technical topics differs from the doing of technical topics.
Oddly enough, this initially shocked me in reverse. I used to teach computer science. I was very well versed in talking about technical topics. Then, I switched over to industry and was shocked when it didn’t come naturally to me to talk about the programming I was doing. It takes practice. Continuous practice. I am now fortunate to have a group of similarly minded tech friends, and we get together once a week and talk about interesting tech topics for an afternoon. Find your own way to practice talking about tech topics.
6) The coding challenge: What you say, prepare for coding? It’s something I do all the time. But, do you always code at a white board with powerful people watching? Do you always code without an IDE? Do you always code in the language that will be used in the test for this specific job? Do you always talk out loud while you are programming and guide others through your thought process? Learn about the conditions of the coding challenge. Yes, some of coding challenges are given to you and you can do them in the language of your choice on your computer, in your own time. Others you cannot, and they have some specific conditions. Learn about those conditions. Practice under those conditions. Some coding challenges like to be tricky in terms of giving you algorithms you’ve not seen since college or grad school. Break out an algorithms book beforehand. Spend some quality time reviewing and writing code for these types of problems.
8) What about open-source projects? Or self-published apps? My view is that these things are necessary, but perhaps not sufficient. What gets you a job? Other job experience. Employers want to make sure that you can do the job at hand. It seems best to be able to talk about that last job that you had. Keep going on that open-source project, or those apps though. Your skills will win through in the end, me thinks. And if you are like me, keeping yourself distracted by programming can keep your mind off the stress of the job hunt.
9) What about startups? If I had to do my transition to industry all over again, I would have dug in quickly with a startup, and helped them for a year or so with an app or some other coding project. Perhaps with no salary or pay. That would have built my network of industry connections, had me learning about business, and built up my skills. In my view, while I’ve not tried this route, this would be better than digging into open-source projects or self-published apps. And who knows, that startup might make it big and you get in on the ground floor of a great thing!