Are you a Mac enthusiast? Do you find yourself gravitating toward the sleek and elegant designs of the various and ubiquitous Mac products?
Perhaps you saw Steve Jobs’ Harvard commencement speech and gained a new respect for the Apple company. Or maybe you are more oriented toward the engineering aspects of Apple and marvel at how Wozniak was able to put together the original Apple II?
Whether you are an Apple fanboy, a Mac user, or just an enthusiast, the philosophy behind the company is one that many want to be a part of and identify with. Perhaps owning an Apple product and being part of the so-called “Apple” family is not quite enough, and you desire to play a role in the developer ecosystem of Apple.
Working for Apple also has many of the same benefits enjoyed from working at any of the other large tech companies, including Google, Amazon, Facebook, etc: high salary, free food, Apple swag, prestige, among many others.
Whatever your path for desiring to work at Apple, this post will be a one-stop shop for constructing your strategy to dominate the Apple Interview.
Who Is This Post For?
Apple is a large company and, therefore, hires to fill many different types of positions. Apple has a complete list of teams posted on Apple’s teams page.
This post will center on how to prepare for the software-focused roles, namely the “Software and Services” team.
The Software and Services team is split into a number of subcategories as well. A complete list of categories is provided on Apple’s Software and Services page.
Each subteam is specialized, and covering the subtopics in each goes well beyond the scope of this post.
For instance, if you’re interested in working in the machine-learning division of the Software and Services team, expect specialized questions pertaining to artificial intelligence, algorithms specific to machine learning, and the like.
The common point among most, if not all, of these subservices is that they will require some flavor of technical interview. That is, you will be expected to have a deep understanding of the fundamentals of what is typically taught in an undergraduate degree program in computer science.
This includes a thorough understanding of data structures, algorithms, etc. For more information on what to expect for this style of interview in general, you can consult the list of blog posts provided by Byte by Byte.
This post is going to center on the specific aspects of the Apple Interview. We are going to investigate what makes Apple unique in their interview process and give you an overview of what to expect going in.
In this post, I will show you:
- What is the Apple interview. Here you will find detailed information on everything you need to know about the Apple interview, from recruitment and the first steps, to the on-site interview and what to expect afterward. I will also show you how the Apple interview differs from that of other companies.
- How to prepare for the Apple interview. Good preparation is imperative, and in this section, I will share with you concrete tips about how to prepare, including the most common interview categories, study material, and study strategies.
- Additional resources to master the Apple interview. Last but not least, I will share with you some very useful resources that can help you pass the Apple interview.
What Is the Apple Interview
Let’s break down the primary components of what the Apple Interview consists of. Getting put in touch with a recruiter is a necessary first step before the interview can take place. There are a few different methods by which this can happen.
Don't do another coding interview…
…Until you've mastered these 50 questions!
Getting in Touch With the Recruiter
The first step in the process is to either have a recruiter reach out to you or vice versa.
In the former, it is not uncommon for Apple recruiters to reach out to you if you are graduating from a competitive computer science program, have competed in hackathons, or have a compelling enough web presence to get approached by recruiters through LinkedIn and via other online channels.
For the latter, the most direct method of being put in touch with a recruiter is directly through the Apple Jobs board. The layout of the website is characteristic of Apple’s style in that it is very minimalistic and has a very clean-cut style.
Depending on your experience and their need, you may or may not receive an initial rejection from the automated system. Apple is typically quite good about sending a notification in either case.
If the position is not a fit, you will receive a response, and in the event that it is, a recruiter will touch base with you for further details, some of which are outlined in the remaining part of this post.
Another direct method is to keep a lookout for local job and career fairs where Apple will be present. These tend to be centralized in more densely populated areas, which makes sense from Apple’s perspective in having a high number of qualified candidates.
It may be worthwhile to see if there are any local channels, that is, universities, meetup groups, etc. that may give some location-specific information for your area.
What the Recruiter Does for You
When you are in touch with a recruiter, their job is to help you navigate the logistics of setting up an interview at Apple. They are responsible for coordinating the interview and potentially setting up any travel involved in the on-site interviews.
Apple recruiters will be available to answer questions you may have about the format of the interviews and will often provide very standard preparation material for the technical side of things.
The Apple recruiter will be your point of contact for the subsequent steps of the interview that we cover in the next few sections.
The phone screen typically consists of two parts.
In the first part, you are contacted by the recruiter to have an informal and nontechnical talk. The recruiter may ask some topical questions, but nothing too far related to anything technical. They are mostly just trying to figure out if you have some idea about what you’re talking about.
The second part occurs assuming the conversation goes well. The recruiter will schedule another interview which is the actual technical phone screen.
This phone screen may be between you and a single interviewer or sometimes a team of interviewers.
In any case, the general format is a shared coding environment where the interviewer(s) can assess your ability to utilize basic data structures and algorithms concepts. Being able to provide a solution and quickly analyze the runtime complexity of your solution are key skills to have going into this interview.
The duration of this interview ranges from thirty minutes to an hour. Once the interview has concluded, your recruiter will reach back out to you with next steps as to whether they have decided to proceed or not.
In the event that you pass the phone screen, the next step is the on-site interview.
You will most likely meet the recruiter who you have been corresponding with, and they will elaborate on what to expect in the interview. Prior to your arrival, the recruiter will also provide you with information via email.
There will be roughly around six or eight interviews, each of which will be with the respective teams that you may be working for, directly or indirectly. The interviews themselves will be the standard whiteboard style of technical interviewing.
Each interview will be between you and at least one, possibly two, interviewers. In the middle of the day, you are provided lunch on the Apple campus, and this lunch is between you and your potential future manager.
While this lunch is one of the more informal aspects of the interview, you would be wise not to let your guard down completely here. This interaction is still very much an interview, and it is important to keep that in mind when carrying yourself here.
If you feel you did poorly in one of the on-site interviews, this feedback won’t follow you into the next.
At the end of your interview, the interviewers will get together and assess whether you are a good fit for the role. If the decision is unanimous, you will have the final interview with the VP of the team you are interviewing for.
According to Gayle McDowell’s excellent book Cracking the Coding Interview (CTCI, this is an affiliate link), making it to the VP interview is a good sign that you did well in the previous interviews, as you would have otherwise been escorted out of the building prior to speaking to the VP.
This will conclude your on-site, and the next steps will then be determined by your interviewers.
After the Interview
Assuming you received the VP interview, all of the interviewers will gather into a room and decide whether or not to proceed with the hire.
Assuming they decide to go “hire,” your recruiter will contact you and let you know the next steps for compensation, logistics, etc. In the other case, your recruiter will still let you know, and then, unfortunately, you will have to start from the recruitment process to interview at Apple again.
How Is the Apple Interview Different From Other Companies’ Interviews?
The “Two Against One” style of interviewing is somewhat unique amongst the FAANG companies. This style is what it sounds like in that you are being interviewed by two Apple employees.
Outside of that though, the content you will encounter here will be very familiar to you, especially if you have read up on the other posts here on Byte by Byte that cover the Google interview and the Amazon interview.
Another difference may be in the enthusiasm that Apple employees have for their products. While it’s not mandatory, being an enthusiast and user of Apple products is a soft prerequisite. Of course, it won’t be a make or break a thing if you are not, but it will probably raise a few eyebrows if you’re enthusiastically against Apple products.
How to Prepare for the Apple Interview
There are a few components that make the Apple interview a unique experience. So now that you know what the Apple Interview consists of, how do you most effectively go about preparing for it?
Pro tip: Spend most of your time on the most important and most likely material to appear in the Apple Interview.
As you would expect from an interview from the tech giants, having a solid grasp of data structures and algorithms is going to serve you well in both the phone screen and on-site interviews.
The types of questions that we spend our time practicing are important, especially if we are targeting a specific company.
With this in mind, we decided to gather some data regarding the types of questions that are typically asked in Apple interviews. We combed through the website Glassdoor to find specific examples of what people had experienced in their Apple interview.
Don't do another coding interview…
…Until you've mastered these 50 questions!
Glassdoor has a page dedicated to Apple, and individuals who have interviewed at Apple give a review on their experience. This often includes specifics as to what problems, or at least, what types of problems they were asked during their interview.
After parsing through over one hundred interview experiences from Glassdoor for Apple, I obtained the following distribution of the types of problems that were generally encountered in an Apple interview.
For a bit more granularity, I also took these larger categories and broke them down into smaller subcategories. For instance, instead of grouping Graphs/Trees together into one item, I broke it down into more specific and separate “Graphs” and “Trees” categories. The corresponding graph is shown below:
From both of these graphs, it’s clear that Apple really favors the following topics:
- Linked List
- System Design
Protip: Apple generally only asks system design questions to candidates with at least 3-5 years of software engineering experience.
One of the observations I made in parsing through this data is that there were recurrent specific problems and topics that arose in all three of these subcategories.
Let’s break each of these down. That way, you’ll be able to focus on the most likely categories, as well as the most likely specific problems, you may encounter in an Apple interview.
In my analysis, the most common type of problem that interviewers encountered during their Apple interview was one involving trees. While a few of them did have the occasional more exotic tree-like data structure (for instance, a trie), the majority of the tree-based questions were focused nearly entirely on either binary trees (BTs) or binary search trees (BSTs).
It would then stand to reason that understanding these types of data structures at a deep and fundamental level is exceptionally important for your success.
In addition, being comfortable with traversal algorithms on BTs and BSTs is a must-have skill. You should know how to do so in an iterative, as well as recursive, fashion.
Being able to validate that a given BT is in fact a BST is a question that popped up rather frequently in the Glassdoor dataset. This type of question requires both a strong understanding of both the BT and BST data structures in addition to knowing how to traverse both structures.
If you need a refresher on both BTs and BSTs, I have playlists dedicated to both on my YouTube channel:
I go over each of these types of data structures in detail and also provide a number of example questions that you may receive during your Apple interview.
For instance, the question mentioned prior regarding how to validate a BST is provided in this video:
Validating a Binary Search Tree
If you want to practice this problem, visit the above link, and listen to the question statement. Once you understand it, pause the video, and attempt to solve it on your own. If you are stuck, or if you think you have a solution to the problem, unpause the video, and see if your solution matches the one that I have.
You can use this strategy for the other videos on the BT and BST playlists as well for more practice.
The same advice for trees applies here for arrays in that you should be very comfortable with the array data structure, as it is commonly used in the majority of problems you will encounter.
One of the primary array-based questions that I observed in my analysis of the Glassdoor Apple dataset was the “Two Sum” problem or some variation on that problem, i.e., “Three Sum,” etc.
If you want to see precisely how that problem is defined in addition to an explained solution, you can check out a video on my channel where I cover precisely the Two Sum problem:
LucidProgramming Two Sum Problem
My advice to you would be to listen to the problem statement in the first part of the video. Pause it at this point, and attempt to solve on your own. If you struggle, that’s OK.
If you get stuck or believe you have a solution that works and is efficient, watch the remainder of the video to see how I solve it. While it’s not the only way to solve this problem, it is one of the more efficient ways in which to do so.
Once you feel comfortable with the “Two Sum” problem, I would then advise you to seek out the “Three Sum” problem and further variations, as these variations are arguably not trivial extensions on the “Two Sum” problem.
Being comfortable with this problem and the techniques and data structures used to solve it will serve you well even if you do not receive this problem or any variation of it during your Apple interview.
It’s no surprise that Apple would want to focus on vague design constraints, especially ones that require eventual scalability.
The system design questions found at Apple also have a specific flavor of involving more of a web-based component. Typically, something involving the design of an e-commerce store or URL shortener service were specific questions in the system design category that popped up frequently in the Glassdoor data set.
Check out this Byte by Byte post on system design interviews that covers specific strategies and tactics to crush your system design interviews.
Additional Resources to Master the Apple Interview
Here are a number of additional resources as well as a list of the resources that we made reference to in this post.
–Cracking the Coding Interview by Gayle McDowell
–50 Practice Questions for your Coding Interview by Byte by Byte
–List of Apple’s Teams
–List of Apple’s Software as a Service Teams