Apple hires very specifically for teams and filters by candidates who have highly relevant experience. An initial resume screen is performed by the recruiters and then final shorlist is done by Managers who look for good overlap in technical skills of the candidate and skills required for the role.
So it's really important to tailor the resume to the Job description for Apple.
Applied to about 10+ roles on the Apple Careers site, whose description overlapped with my experience.
About a month later, a recruiter reached out regarding one of the roles. This was for a Full Stack Engineer on an internal ML platform.
Shared my experience and was able to move ahead for a Hiring Manager Round.
A very candid discussion on why I chose the role, my relevant experience, why I would like to join, where I see myself, and why I chose Apple.
The conversation was very positive, and I knew I was moving to the next round
Technical rounds have a general similarity.
The problems were highly vague. They required me to ask the right questions to complete the problem definition and then start working on it.
They were very keen on clear communication and discussions.
Problem 1: A vote counter
Started with this vague problem statement and narrowed it down to this -
Build a class to read millions of votes from a ballot list and perform rank-based vote counting. Had to handle batching to solve for memory usage.
Problem 2: Given a Binary tree of 0's and 1's where the left node is the same as the parent and the right node is opposite to the parent, determine the value of the n'th node at l'th level.
I sketched out a sample tree and then proceeded to use recursion to arrive at the solution.
Problem: Given a set of characters, determine all English words that can be created.
Started the discussion on determining the inputs and outputs, the structure of the dictionary to validate against.
Built a trie with the dictionary list and tested every permutation of the characters.
Optimised it in a second approach by generating a HashSet for every anagram in the dictionary and checking against characters.
This was not a generic design round at all.
The interviewer was a very experienced person who had worked with Apple for over 10 years.
The round focused primarily on my experience. He picked each of my experiences and we discussed very deeply about my entire task. Why I picked it, what I did (sketched multiple diagrams for each question), how I measured performance, what I would do differently today.
This round was with a senior manager.
Question: Given the values of Apple, such as Deep expertise and Drive for Excellence, how have you showcased these in your career?
I started picking examples from my first job to my last job, highlighting the different lessons I had learnt - technical, cultural, and leadership.
Some key lessons I highlighted were -
**Problem 1: **Given a dataset, sample n items while maintaining the original probability distribution.
Very straightforward problem, the solution was to maintain the original counts and use random to sample.
**Problem 2: **Create a React component that can display 1M records.
The problem required slicing the data and displaying only records that would fit within the scroll section.
This is a classic React interview problem.
Practice Resource : https://www.greatfrontend.com/interviews/dashboard
Had practiced questions from here which made this really easy to solve.
Discussed my expertise in React. Then the interviewer drew a basic input UI and asked me to implement it.
I showcased skills such as breaking down the UI into components, creating a higher order component, using UseEffect, UseMemo, and UseRef for functionality.
Mailed the recruiter for feedback as I had just cleared Amazon and had made a decision soon.
After continuous follow-up for 4 days got positive feedback.
Took another 2 days for the verbal offer and another 4 days for the written offer.
Apparently, Apple startes interviewing for a role prior to receiving approval and requires 4 levels of signatures up to the VP level to roll out the offer.
So, anyone waiting on Apple, just keep following up as they as gonna take their own time!
I already had an offer from Amazon for SDE 2, and so the baseline was set.
Apple was NOT able to match my Amazon offer at IC3 level as I only had 4.5 YOE and didn't qualify for IC4 :(
Base: 175K
Stock: 33K / year
**Sign On: **20k
**Yearly Bonus: **7.5% = ~13k
Amazon TC: 280K
Amazon Innterview - https://leetcode.com/discuss/post/6558499/amazon-interview-expereince-l5-seattle-b-vmpa/
I still chose Apple as I didn't want to move to Seattle and deal with Amazon Culture.
It took me 4 months and 72 interviews to land my first Offer after being laid off.
Just when all hopes were lost is when I landed 4 back-to-back offers and finally picked Apple!
Keep grinding people. Everything eventually works out.
Luck is as important as the hard work we put in. So, don't be discouraged if you are not getting callbacks or interviews are not converting. Its not your fault.
Stay positive!
Happy to answer any questions!