My Interview Experiences: Facebook, Apple, Qualcomm and Synopsys
I recently had the opportunity to interview with a few top tech companies in the Bay Area: Facebook, Apple, Qualcomm, Synopsys and landed offers from these companies. The interview experiences in particular have been extremely transformative with many life lessons learnt along the way. I personally believe that interview experiences of others are effective tools for interview preparation and thought it would a good idea to share them with my network.
I interviewed for the college graduate software engineering role at Facebook. The Interview process consisted of 2 telephonic interviews and 3 on-campus interviews . All interviews lasted around 45 minutes.
The interviews on campus consisted of 2 coding rounds (called Ninja) and a behavioral round (called Jedi). In each of the coding rounds you are expected to solve 1–2 coding questions depending on their complexity on the whiteboard. I believe, in addition to arriving at the right solution, interviewers look for clarity, and how you communicate your thought process to them. I was asked to state the algorithmic complexity for all the problems and optimize the algorithm as much as possible. I personally found it useful to write down the high level algorithm/pseudocode first before diving into whiteboard coding. In doing so, you have solved the major part of the problem and you will not be penalized severely if you make minor errors . In the behavioral/culture fit round I was asked to cite some instances where I exhibited certain qualities, name some engineering decisions I regretted and so forth. The interviewers in a behavioral interview want to gauge whether your past experiences prove that you are a good fit for the company’s culture.
Preparation: I did topic wise preparation using online judges (Leetcode, Codeforces). I think it is useful to code as many questions as possible and preferably stick to one language and get familiar with all the built-in data structures that the language provides (STL in C++, Collections in Java etc.). I also researched about the company’s culture and core values which came a long way in facing the behavioral interviews.
I interviewed for the software engineering role in the Silicon Validation Team. I had a phone-screening interview and 6 on-site interviews each lasting 45 minutes. The interviews were with different members of the team: Director, Group leads, managers and peers. Apparently, each and every one of the interviewers has a say in the final interview outcome.
The interviews covered concepts in computer architecture : Basic CPU block architecture, pipelining, cache design, cache coherency protocols, multi-threading and operating systems. I was also asked coding and software design questions. The interviews at Apple are highly team specific. I think, the challenging aspect for me was to maintain focus till the last interview.
Preparation: I reviewed Computer architecture and OS concepts using online courses (NPTEL, Udacity).
I interviewed for the Software engineering role in a Computer Vision team. I had 1 telephonic screening followed by 4 interviews on-site with the members of the team.
The interviews were more conversational covering concepts in embedded systems, computer architecture and my summer internship experience at Qualcomm.
I was also asked many interesting open-ended questions. For such questions, I think it is useful to think aloud and let your interviewer know your though process. This allows your interviewer to guide you through your thought process by providing some hints. I remember reading somewhere that the key strategy to tackling conversational style interviews is to direct the interviewer’s focus to topics that you are interested and confident to speak about. The interviews at Qualcomm are highly team specific.
I interviewed for a Machine Learning position at Synopsys. I had 1 telephonic screening followed by 7 interviews on-site. The on-site interviews consisted of 2 coding interviews , 2 Machine Learning interviews and the remaining 3 interviews were conversational where we discussed about some technical concepts as well as my work style and technical interests. The interviews at Synopsys are highly team specific.
Preparation: I reviewed Deep learning and Machine learning coursework material of UCLA and Stanford University.
I relied heavily on online content to aid my preparation. It is always useful to ask the recruiting contact in advance about what would be discussed in the on-site interviews in case they don’t provide this information. I personally think that every company looks for particular qualities in the candidates in addition to technical knowledge. Understanding the company’s core values and culture come a long way in answering the behavioral questions.
Another challenging aspect of interviewing is managing the interview timelines: offer deadlines and offer decisions. In my experience, it is useful to schedule interviews close together and keep the recruiters informed of offer deadlines.
If you are landed multiple offers, the next challenge is to make the ‘Big Decision’ which in most cases is never easy!