I recently finished (and flunked) an entire interviewing sequence for a Senior iOS dev role at LinkedIn and thought it would useful to recap it for the next victim to come down the chute.
If you pass the phone interview hurdle, you are passed along to a “senior recruiter” who, along with a travel coordinator, will handle your trip out to the Bay Area. You’ll get a list of the actual interviewers (and of course, links to their LinkedIn profiles) 24 hours prior to your on-site visit. The interview was officially scheduled from 9:30 until 4, but in a practical sense it went from 10 a.m. until just after 3 p.m.
The coding questions I’m recapping below will apply for iOS engineers in both locations, but I’ll give my impressions about the San Francisco location. I picked San Francisco because I’d prefer to work in a city versus the suburbs, but in terms of practicality, keep in mind that Bay Area real estate (and rent) and the general cost of living is incredibly high compared to anywhere else you can choose to live and work in the US, and even more so within the desirable city limits of San Francisco. You may have a lot more options to choose from if you choose the Sunnyvale (Silicon Valley) campus, but the San Francisco location (a 20-something story completely brand new office tower) is incredibly luxe and modern. I went up to the 17th floor, sun-drenched outside patio at least three times and at the very end of my day, got to enjoy some fancy hand scooped ice cream up there as well (I think this happens every Friday afternoon).
If you arrive early for your interview in San Francisco, ask the front desk person in the first floor lobby for the public WiFi password. Once you’re in the tower, there’s a separate guest WiFi network that you can quickly register for and get access. There’s two banks of elevators in the building (i.e. some elevators go to lower floors, others to the higher floors) with a stairway between the 13th & 14th floors of the building where you can switch elevator banks while you are touring. Interviews took place for me on the 10th floor of the building and they generally follow this model: a host manager meeting (i.e. the traditional part of any job interview), a domain expertise tech session (i.e. coding up a project in Xcode), a “talk about life at LinkedIn” lunch interview, systems design & architecture, and then the dreaded algorithms & data structure questions.
My host manager was pretty young but had already advanced to a Senior Engineering Manager role after starting his career as an intern only *six* years prior (i.e. he was able to use LinkedIn as a rocket-ride to leap out of the contributing engineer ranks). He asked standard “why do you want to be here?” “what do you imagine yourself doing with your career?” type questions, and I got to (accidentally) learn some of the internal codenames for various iOS apps along the way.
There are two different Mobile Coding projects you could possibly get hit with, and the candidate gets the choice of implementing it in Swift or Objective-C. The project I implemented was to create a table view displaying contacts loaded from a JSON file on disk. One tricky part is that the contacts had pictures loaded from remote URLs. While I finished my project within 45 minutes, the remote images were not nicely refreshing in their correct cells. I volunteered to subclass the cells to keep track of the URLs being displayed, but the iOS developer doing the interviewing & sitting next to my laptop assured me that he was happy with what he saw (which ended up being a lie — it was a minor, but harmful, strike against me in the end).
Then came a “lunch ambassador” meeting (lunch in San Francisco is catered down on the 3rd floor I believe, while the gym & fitness facilities are on the 2nd floor). Unlike Google & Facebook, this lunch meeting actually DOES count to the hiring committee, so I chose a skimpy salad and tried my best to engage the interviewer about her life & career at LinkedIn.
The next session was System Design & Architecture, and for the Algorithms session right after, there were two interviewers in the room with me which amplified the pressure somewhat.
A week after my on-site interview, I got a message from the recruiter saying my interview summary was sent into a hiring committee and that they weren’t going to move forward (with -- thankfully -- a little constructive feedback: primarily due to my hand-wringing in the algorithms module but also not being able to get perfection with the programming project). The outcome was a big disappointment for me, but hopefully my experience flunking the iOS Developer interview process at LinkedIn will help you to properly prepare for yours. If you find any of my information useful, please let me know by clicking on the “helpful” link below. This helps to motivate me to be as detailed as possible in my interview reports. Good luck to you!