Passing the iOS Interview

Austin Beck
Geek Culture
Published in
5 min readJun 21, 2021
Photo by Pineapple Supply Co. on Unsplash

The interview process for an iOS developer job can be a very daunting task. While each company has their own method of interviewing and selecting candidates, I have come to see a lot of similarities that they all share. Today we are going to discuss tips and tricks you can use to nail your iOS interview!

After working for Apple for three years and seeing the interview process of this tech giant, there are some nuances that may not be known to most developers that interviewers look for in a candidate. The first thing we will discuss today is the general process in which interviews take place for an iOS role.

The Process:

Most companies will have a multi-level process that takes place when going for an iOS role. Typically the process is laid out into 3 stages. The first stage is the initial phone screen. During this time, you will have likely a 30 minute to an hour long phone conversation with either the talent recruiter or hiring manager for the company. It is very important to do your research before this first stage! Look up the company you are interviewing with. Get to know their product, and if possible learn how it operates and how your position will be involved in it. The more you know about the position ahead of time and their product, the better it will look during this phone screen.

The second stage you will then likely encounter is a coding challenge. This part of the interview process can vary from company to company. I have had several second interviews where I will simply be sent a link to solve 2–3 coding problems within a given time. I have also had this completed in-person or over a web call with one of the developers for the team I was interviewing with. You should be prepared and comfortable to complete these challenges in any type of climate, be it in person or virtual. To practice solving these coding challenges, I highly recommend going through LeetCode exercises. You can sign-up for a LeetCode account for free and practice solving easy to complex coding problems that will likely be similar to the questions you will have to solve during the interview.

The final round of interviews is where the fun really begins. For larger tech companies, you can expect to have a 3–4 hour long panel interview that will involve several different individuals within the company. These are typically broken up into 3–4 smaller 55 minute interviews back-to-back. From my experience, they will begin each one of the smaller interviews analyzing your technical knowledge as well as how you handle different situations. We will discuss the methodology that most companies use to analyze your situational awareness in the next section.

There will typically be live coding in each part of the panel interview that will help show your skillset through different means. One of the types of challenges you can expect to face is diagramming out a database structure. The interviewer will want to know that you understand the basic architectural needs for an application and how all of the pieces connect. Another coding challenge you will likely face is more algorithmic. Expect to be asked to solve a problem that must be solved using an algorithm, such as merge-sort, binary search, etc. You will not only want to solve the problem, but make sure you are solving the problem in the most efficient manner.

Successful Live-Coding:

When asked to do live-coding in the interview, it can be very intimidating. One thing that seems to always trip up candidates is that the interviewer wants you to talk through the problem with them. You should not instantly begin solving the problem. Instead you should discuss how you are going to solve the problem and why.

Another thing that trips up many developers during the live-coding section is that they forget to ask questions. Often times the interviewer will give you a problem to solve, but will not provide you with all the details that you may need to solve the problem. This is completely intentional! They want you to ask the right questions and understand how you process and solve these problems, not that you just memorized a bunch of algorithms.

The S.T.A.R Method:

I talked previously about the behavioral aspect that will be involved in these interviews. Often times this portion of the interview is just as important as being able to solve the coding problems. The interviewer will ask you a series of questions about situations you have encountered in the work place and how you handled them. There is a specific way to answer these questions to ensure that you are providing the information that the interviewer is looking for. This methodology is used by Apple and other large tech companies to evaluate your behavior in different types of situations. The Way to answer these questions is called the S.T.A.R method. Let’s break this down further.

  • S — Situation: The S stands for “Situation” and is when you should begin answering this question. You should properly explain the situation at hand and why it is a situation to be handled.
  • T — Task: The T stands for “Task”. This is the section in your answer in which you should explain the task that will be needed to resolve the situation. For example, “The code base wasn’t working due to an unverified branch being merged. The task at hand was to go into the unverified branch and find and resolve the issue within the code causing the application to crash”.
  • A — Action: The A stands for “Action”. At this point, we have explained the situation and the task needing to be accomplished. Now we want to discuss the actual action that we took to resolve this situation. When talking through the actions, it is very important to use a lot of “I” words and not “We” or “The team”. The interviewer doesn’t want to know about the collective efforts, they want to know what you specifically did to resolve the situation.
  • R — Resolution: The R stands for “Resolution”. This section is where you will nicely wrap up your example by explaining what the actual resolution to the situation was and how the actions you took helped achieve this resolution.

Conclusion:

As you can see, there are several different tips to help you succeed in the interview process for an iOS role. One final piece of advise I can give is don’t give up. Take rejections you may receive and ask for feedback. Understand what could have been done better and fix it for the next time you have an interview. So many iOS positions may be looking for a specific specialty within iOS development. Just because they passed on you, doesn’t mean you are not a good developer. Keep trying and apply the tips we discussed in this article and I am sure you will succeed! Happy developing!

--

--