I haven’t written much here lately due to the crazy workload at my job. Working for a big company can be really complicated and this project is the second highest profile thing we are doing this year. But being the lead iOS person I have to interview folks for supplementary contract positions over the phone.
Just to be clear, don’t send me a resume. I don’t collect them, they come through some giant process involving people, places and machines I have no connection to. All I get is something spewed out the tail pipe and I get to choose who to call and attempt to discern if they are worth trying out. If you send me a resume it will vanish into a black hole. If you are a recruiter the same response will be given passed through two black holes.
At my last job I interviewed people to replace me, in this case they had a number of recruiting firms who blasted me with every random resume they could scrape together. Oh the humanity. I got resumes for my iOS position which were clearly copy and pasted from random other resumes, often with non-iOS content. One even misspelled Objective-C completely (as in most of the letters were wrong except for the C).
I did a few phone screens on those who seemed vaguely acceptable. In this case anyone who passed would come in for an in-person interview. I had a list of questions based on everyday knowledge of iOS programming, nothing tricky or clever, but things designed to be something a person working every day on real iOS apps would know and for that job based on what I had been doing myself.
I still use part of the same list here, but I’ve added Swift questions and a couple simple testing scenarios (you have this and this and this and you do this and it crashes, why?).
The first question is the easiest softball question you could possibly ask: what is the string class named in Objective-C? I kid you not at least half the people did not know.
Out of about 10 phone calls at that last job one person got most of them correct, answered in a fashion that was obvious they not only understood the questions but could easily expand on them. We interviewed him in person and everyone approved. Stupidly they didn’t hire him because he wanted $10K more than they expected. I told them you won’t find anyone like this person again. It took them several months after I left before they lucked into another one, I guess they learned their lesson.
At my current employer one person answered intelligently, expanded on his answers, had clearly worked with all of these things and we hired him (contractor). He sits next to me and works independently and I don’t have to think about him at all. But we need another one.
So far the interviews have all been the same depressing thing. They don’t remember, they make up random stuff, they apologize a lot. It’s sad asking that first question and having it be wrong and knowing the rest of the interview will be terrible. I never like to just give up so I gamely ask all the questions anyway; maybe they were nervous and will get better. Sadly they never do.
A real working programmer who lives daily in code (even if it's at home) is able to talk about things, even if they don’t know everything, what they do know comes out easily. None of my questions are the equivalent of rocket science. I want to know if they can work on what we have here (which is a varied lot of things in both Swift and Objective-C) with the least amount of fuss as I have a full suite of complex things to write myself (the high profile thing) along with all the insane meetings I have to attend, and only a minimal time to help less experienced people on all the other things we have. I like helping people do things better or easier but I can't take away from this project too much.
I would think if you are applying to an iOS (or whatever it is) position you would at least take some time to prepare, read a few blogs on the technology, read some lists of common questions, something, anything! Even in past when I was on the other side I’ve always done a couple hours of basic prep to remind myself of stuff I might not have touched recently. I just can’t believe that people expect to be interviewed by a clueless HR person and hired immediately. I’m not a manager, I actually live in code every day, you can't fool me.
I was recruited to work here by my former manager at the travel company (two jobs ago) who already knew me and talked about me here for 18 months before the wheels of this sluggish beast finally creaked forwards. For me this was the easiest job to get ever though I wish I would have asked more questions! I had no idea how complex this place is and how high the profile is. This project has more zeros in it that everything I’ve ever done put together.
I remember failing a phone screen before too, one person at a familiar brand spent the entire screen grilling me on object-oriented theory which I wasn’t remotely prepared for and seemed totally pointless for the position (during my Java days). Of course soon thereafter they canned all of their devs and went completely to external vendors without having anyone who could even understand how development worked. So good thing I couldn’t explain OO theory clearly. Just in case for phone screens since then I look it up, you never know!
Sometimes I wish one could just dump a programmer’s brain into a database and run some queries. I guess that day might come in the future.
Now if this was a fulltime employee position for a long term you might want to do more in person interviews though to be honest all the overwhelming process at the Google and Facebooks of the world seem beyond overkill. To me a programmer sounds like a programmer, can talk endlessly about programming they do every day and talk in detail about the minutiae of projects they lived in in the past. I know I can talk about stuff I wrote 30 years ago still, maybe it got better with age but still in pretty decent detail. If I ask someone who doesn’t know what the string class is named will I get more than 30 seconds of detail?
A programmer should be able to tell if they are talking with a real programmer in 30 minutes or less. After than you just want to know anything special you care about. Taking two full days (I knew one guy who Microsoft flew in 11 times for interviews) is a terrible waste of everyone’s time.
If they don’t know the name of the string class you may as well stop right there.