Apple Interview Experience - Cloud Data Engineer
--
I offer an immense pleasure for you showing up here. Being a computer science devotee proficient in Microservices Development, Cloud Computing & Data Engineering, I have always looked forward in learning, sharing & gaining knowledge with overwhelming support of brilliant minds like you. With my deep regards, I hope this article will be able to reach out to the desire you wish to read ahead. Thankyou!
— Kshitiz
Hi, I recently attended the interview rounds for the role of Cloud Data Engineer at Apple. I found the entire journey to be quite hard and comprised of nine major rounds. When I was preparing for the interviews, I didn’t find much references and which is why I am writing down my experience so it can help readers. A brief summary provided here will help you get an idea for the preparation.
Round 1: Resume Screening
I applied for this role through the official careers portal of Apple. The job description of the profile was focused on experience in developing and building data pipelines on cloud, data warehouse solutions in Snowflake along with expertise in SQL and Advanced SQL. With that, it demanded high expertise in AWS, PySpark, Python and Data science familiarities. I had a fair understanding and relevant experience for the above-mentioned tech stack so after more than a month of application I got a call from one of the HR that my CV would be forwarded to the respective manager for screening. After a week or so the resume got shortlisted and a telephonic technical discussion round was scheduled.
Round 2: Telephonic Discussion
It was about a 40 minute telephonic discussion with one of the HR. Not necessarily an interview, but to understand more and clear about my skillset, work experience, interests, achievements, certifications and my upcoming plans. They had my CV in front of them and discussed more about my projects and tech stack mentioned. Also they asked me to rate myself in many technologies. More than that, this discussion helped me as well to better understand the role and requirements, and also to get a glimpse of what is expected in further rounds. After two weeks, I got a confirmation for first technical interview round.
Round 3: Technical Interview - I
There were total three panelists and each of them kept asking questions one by one. The discussion began with individual introductions, followed by an understanding of my past work experience, projects and some conceptual questions. Post that I was given a coding problem for which I was asked to write end-to-end code on the go, execute it, run multiple test cases with most optimized solution. Here is the list of coding problems and other theoretical questions that were asked:
1. Explain in detail Parquet file format. It’s use cases, pros and cons.
2. Given a table having source and destination of a flight passenger, write a SQL query to find the distinct routes that have been travelled.
Input -
-------------
src dest
-------------
A B
C D
B A
D C
Output -
-------------
src dest
-------------
A B
C D
3. Joins on keys, data model relationships and normalization techniques were asked
4. Write a PySpark snippet to fetch data from a CSV file by mounting it to cloud blob storage, apply couple of transformations and write the resultant back in a dated folder with timestamped file name.
5. Given a list of numeric elements, write an optimized code to shift all zeroes to end without using any extra space.
# Input -
l = [1, 2, 0, 4, -1, 5, 6, 0, 0, 7, 0]
# Output -
l = [1, 2, 4, -1, 5, 6, 7, 0, 0, 0, 0]
Round 4: Technical Interview - II
After two weeks of my first round, I got a the second one scheduled. More or less it was aligned with first interview only, but with a bit more complex questions of SQL and write queries.
1. Describe the various file formats available and differentiate between their types and use cases
2. Given a string, return the modified string having the character and its consistent count in least possible complexity.
# Input -
s = "abcabbbccaabd"
# Output -
s = "a1b1c1a1b3c2a2b1d1"
3. A table set was given of Orders, Customers & Products and subsequent queries I was asked to write based on multiple join techniques to find Nth highest and lowest data.
4. What are window functions, list some of them. Differentiate between RANK() and DENSE_RANK() with help of a real life example query.
5. Given a table, I was asked to find cumulative sum for one of the data entity.
Round 5: Technical Interview - III
With a wait of about a week, third round was scheduled. Since I had already been though introduction twice, interviewer started with next steps directly. I found this round a bit more complex than previous ones, and also it went up to 1 hour and 20 minutes overall.
1. What is the fundamental difference in Partitioning and Bucketing
2. Given a situation of data pipeline having terabytes of data incrementally loaded and to be visible at a particular hour daily, what should be the minimum frequency of pipeline trigger in a day.
3. What are properties of RDBMS and NoSQL databases, which one is better and why, and explain the scenarios that which one should be preferred to use in which case.
4. A quite complex database structure was provided with uncleaned data, I was asked to write queries keeping in fixes of all those data issues. For example: missing data, incorrect data, duplicate data etc.
5. Write a python snippet to find a pair of elements returning the target sum. Write the code in a way that the given list of elements can be or cannot be sorted already with least complexity
# Input -
t = 30
l = [-1, 2, 10, 31, 36]/[-1, 2, 36, 10, 31]
# Output -
(-1, 31)
Round 6: Technical Interview - IV
Initially I thought the previous one was the last of technical interviews but I was wrong. There was still one pending and I was asked to attend this interview face to face in campus. Based on my experience this was mostly aligned with design and architectural aspect.
1. Design end-to-end data pipeline handling peta bytes of data.
2. What according to you are different data loading frameworks available and which ones are the best to use with least latency.
3. What are the various performance tuning techniques you have implemented so far and what were the results of the overall optimization.
4. AWS services use cases were discussed, especially for streaming data
5. Few questions were asked on Machine learning and Neural networks, particularly on Convolutional Neural Networks (CNN)
Round 7: Techno-Managerial Interview
So from this point, the technical part was done and interview process was shifting to my logical ability and analytical skills. They asked me questions to check how much insights I can gather from a given set of information and what additional details I can provide on top of that.
1. Which E-commerce platform do you use for daily shopping, what are the advancements can be done to best understand the business point of view.
2. A brain teaser was asked which mentioned that if I am the 382th person entering in a room of already having 381 persons, what is the mathematical probability of me having a common birthday with at least one person.
3. What productive activities you do apart from work.
4. What is the most powerful component of data according to you, what is the your vision on it’s potential.
5. What will be your action plan in cases when things go worse at a very crucial time
Round 8: Managerial Interview
Well in this one, no analytical or insightful questions were asked. It was a typical managerial interview of just 30 minutes.
1. What is that thing making you willing to join Apple.
2. What are different challenges you have faced in you so far work experience.
3. What are the achievements you have and some moments which you are proud of.
4. How do you generally deal with a critical situation in life.
5. What are some mistakes you have done and what are sections of improvement.
Round 9: HR Discussion
This was the final step of the recruitment process and it began by asking the reason why was I looking for a job change. Additionally, the discussion revolved around my location and other things. The HR also gave me a fair understanding of the position and roles of this designation. Once the discussion was done and no further questions were there, I was told to wait for further steps and after one month I was offered the respective position.
Just for guidance, I recommend you not to wait for the right time. Start preparations from Day 1. Always be confident and optimistic. I appreciate your patience for reading my experience and I hope it was of some benefit to you. I also thank Medium to provide such a knowledgeable platform. Thanks for being here. Thanks again for spending those precious couple of minutes of yours reading the article. For any query or suggestion please feel free to reach out on youtube, instagram or linkedin.