I recently completed a long series of interviews spanning several months. The process was challenging, but I persevered and learned a lot. I began preparing in late , and my interview journey started in earnest in February. I had previously cleared a Senior Data Scientist interview at Microsoft in late .
Reddit - Sr. MLE (Reject) The interview process at Reddit was generally positive. The system design question was a standard Software Engineer system design question, not an MLE design question like many other companies ask. I was informed that I passed all rounds except for system design. I had not prepared for SDE-style design questions for this interview.
LinkedIn - Sr. MLE (Reject) My experience at LinkedIn was somewhat unusual. My initial recruiter was excellent, but once I reached the onsite stage, I was transferred to a different recruiter who was less helpful. The interview questions were a mix of standard and unconventional. During the coding interviews, my interviewer used Java and assumed Python had the same default data structures, which is not the case. The "data coding" interview was particularly challenging. The interviewer arrived 20 minutes late and, instead of rescheduling, pushed to proceed. The question and concept were also unusual. The "Data mining product design" interview was not a standard MLE design interview. It is important to study probability for these interviews, as it is not always explicitly mentioned. I was asked several probability-related questions. I received a generic rejection email, as expected.
Google (Phone Screen Only) - SDE ML (Reject) I was asked a question about a minimum sliding window in a 2D matrix. Unfortunately, my brute force approach was not successful.
Grubhub Staff DS (Reject) This was a strange experience. The recruiter was unsure about the interview content and spent two weeks trying to gather information, which was conflicting and changed several times. Ultimately, the feedback was positive, but they decided to change the requirements for the role.
Atlassian - Sr. MLE (Passed) I enjoyed the interview process at Atlassian. The interviewers were professional, genuinely interested, and asked job-related technical questions. However, during the onsite technical ML interview, the interviewer, who was also the hiring manager, seemed unfamiliar with ML. This raised some concerns. Despite passing all the interviews, I was not convinced about the team I would be joining, so I requested to explore other opportunities within the company where I could have a greater impact.
Apple - Snr. MLE (Waiting) The interview process at Apple was positive. The details of the role were not clearly defined, so it required several conversations with different individuals, including the director, to determine their exact requirements. Overall, the people I met were mostly great and seemed interested. The questions were fair, but the recruiter did not provide any preparation information.
Microsoft - Sr. Data & Applied Scientist (Offer) My experience at Microsoft was a mixed bag. I interviewed for a couple of different roles. I appreciated that the first technical screen was with the hiring manager, which allowed me to get a sense of who I would be working with early on. The interview process was enjoyable, with fair and relevant questions. I felt confident throughout the interviews and ultimately received an offer, which I am very happy about!
FB - ML SDE E5 (Reject) The Facebook interview process is well-documented. You know their rules, what to study, and need to be prepared. I believe I performed well, only missing the optimal memory complexity for one coding question. Most questions were from LeetCode. I received feedback that I did well in coding and system design but needed more signal in behavioral and ML system design, which are usually my strengths. My ML system design question was in the computer vision domain, an area I have little experience in. My recruiter informed me that they should not have asked that question, and the interviewer even acknowledged that it was not my area of expertise. Despite this, the panel decided not to give me another shot at the interview rounds, which was disappointing. My recruiter was optimistic that they would at least pass me to the hiring committee. It seemed unreasonable to reject someone for not passing a behavioral round because they did not have exceptional responses for every scripted "tell me a time when..." question.
In addition to these interviews, I received another offer and was rejected from two other smaller companies after onsite interviews.
My advice to anyone reading this is to persevere. Interviewing is not easy, and most of us will face many failures. Persistence and perseverance are essential. I do not come from a traditional computer science background, so I have always had self-doubt, especially when interviewing. This interview season, I learned a lot, and in addition to a new role, I gained skills and market value that I can continue to build upon. It will get easier. While you can never rely on luck, I believe that a little luck is often needed to get an offer. One bad interviewer or one bad question can sometimes be enough to miss out on an opportunity. Keep going, and you will find the interview where everything goes your way!
Preparation:
In general, I tried to code most days to stay sharp. I would learn a new system over a week and explore unfamiliar components or concepts, taking notes for revision. I focused on common design patterns, such as ML recommender systems and search systems, and ensured I had a good understanding of them.