Types of iOS dev interviews

Wanted to write this quick note, in preparation for a video that I am going to record for my YouTube channel.

Had to change jobs in the beginning of this year and that experience reminded me (again!) that interviewing is a completely different skillset – and without practice you could get rusty even though your day job is still working as an iOS developer.

Recruiter call or intro call -> this is going to your first interaction with the company. This call normally is not technical. During this conversation the recruiter wants to gather some quick info on your background to confirm the fit (if you get this call, most likely the recruiter has already seen your resume and decided that you are a good fit, but they want to be sure and hence the call). This call is also your opportunity to ask questions about the company and the team that is hiring. This is also when you should ask about the interview process. There is really no reason to be hesitant in asking for details or help on interview prep – the recruiter is invested in your success and want to help you. A lot of companies have interview guides – you could ask for that. You could also ask about any tips on doing well in interviews – questions about where candidates generally do not do well.

At the end of this call, if everything goes well, the recruiter should share details about the next steps or get the ball rolling in scheduling the first technical interview.

Telephonic screen -> The objective here is to confirm you meet the minimum bar required to pass the full panel interview. It is expensive (both time and $$$) to interview candidates – so companies want to avoid spending too much time on candidates who are unlikely to perform well in interviews. As a result, this interview focuses on making sure you can code up an easy or medium difficulty question in 20-35 minutes. They are looking to evaluate your logical reasoning abilities and communication skills. They want to see you struggle on a technical problem – see how you work with another engineer when you can’t figure out a way on your own. Can you work with hints? Are you explaining your reasoning? Are you making sure the interviewer is able to follow your thought process? Are you considering time/space complexity tradeoffs?

Some companies might prefer to have multiple screens before they ask you for a onsite/full-panel interview. Others just do one.

For iOS developers, this interview might also cover some fundamental questions. – this could be anything from basics of Swift (class vs struct) to building the UI (SwiftUI or UIKit basics) to application life cycle. Ask your interviewer how much details are expected when you answer – most likely they prefer breadth over depth at this point.

By the end of this round of interview process, the company has evaluated if you meet the minimum bar to do well as an iOS dev. Also you as a candidate had an opportunity to talk with at least one engineering who works at the company – make sure you have questions about culture, release process or anything else that matters to you about the company/team – this is a great opportunity to get a better understanding of the team you might work with in the future.

On-side/ full-panel interview -> This the big day or multiple days as some companies do offer to split the interviews over multiple days. But this phase involves 5/6 interviews – each focusing on different skills sets.

Coding interview(s) -> Yep there could be more leetcode style coding interviews – these might be slightly harder than the telephonic screens or the same difficulty, but rules are the same – make sure you think out loud, ask for help when stuck and talk about tradeoffs – remember companies (at least the good ones) don’t want to hire code monkeys – they want to hire engineers who can think logically and work well within a team.

Behavioral interview(s) -> These interviews focus exclusively on your past achievements and struggles. Here the team wants to understand if you would be a good cultural fit. A good way to prep would be to go through the companies cultural memo and try to gather/prep stories from your background that demonstrate the qualities the company lists in their memo. Don’t be fooled – these interviews take a lot of effort to do well, you also need to practice answering follow up questions on your stories. The interiewer would most likely be a senior eng manager or a director – so know that they have taken a lot of behavioural interviews and are good at gauging your background.

System design interview(s) -> For iOS developer roles, this interview is a bit different than regular system design rounds. Here the team wants to understand how you think at a higher level given a not so well defined problem statement. Remember that the focus is as much on communication as on technical skills. The questions in this interview never have a fixed answer – but you must be able to weight in different ways to solve a problem and explain why you took a specific approach. A good way to practive is to try to design your favorite iOS apps from ground up -> this involves designing the required APIs, how would you model your data, how would you structure the UI components and the architectural choice. Again in this interview breadth is more important than depth – unless the interviewer asks you to go into detail about a specific subsystem, focus on getting at a complete app/system.

Hands on iOS coding interview(s) -> These interviews are fun. They could take multiple forms – the team might ask you to build a small app (most likely involving a feed of items) or debug an existing app that has bugs in it. The focus is on validating your hands on chops – they want to see you code using Xcode, see your comfort in getting your hands dirty. This interview would most likely involve some sort of UI development and making network calls, more than likely you would have to use a UICollectionView to show a list of items (how do you manager cell reuse?, how to you make sure network calls are not being made for things that are not on screen anymore, are you reusing previously downloaded network assets?, how would you unit test your code?).

One thought on “Types of iOS dev interviews

  1. Pingback: 30 days, 30 posts. | Indrajit Shanbhag

Leave a comment