Just finished a long round of interviews which ended up spanning a good chunk of this year. The path is tedious, but spoils come to those who persist my friends! Started this run back in Feb. prior to the first of these I had been doing prep here and there for the last few months of 2020 and had cleared a Snr. DS interview for MS towards the end of 2020. January started to get a bit more serious in prep. for an upcoming onsite in Feb. then on and off study until May where prep. was pretty full on until I burnt out in July and finally just crossed the line.
Reddit - Sr. MLE (Reject)
Overall, not too bad of a process, really depends how lucky you get with your recruiter, mine did not seem to care at all. For MLE's the system design was a standard SDE system design question not a MLE design question like a lot of other companies will ask. Feedback here was I passed all but sys design, I didn't prep for SDE style design questions for this interview.
LinkedIn - Sr. MLE (Reject)
Kind of weird experience here. My initial recruiter was awesome, once I got to the onsite they transferred me to a different one who couldn't care less and gave zero help for prep. Anyway, interview questions were a mix of standard and stupid. Coding interviews my interviewer programmed in Java and assumed Python had the same support the same default data structures which it unfortunately does not. The "data coding" interview was terrible, interviewer turned up 20 minutes late, instead of rescheduling pushed to proceed, silly question/concept as well. The "Data mining product design" was stupid, not a standard MLE design interview. Study probability for these, they won’t necessarily mention to study it, but I got drilled on a couple of interviews for not brushing up. Received a template rejection email, as expected.
Google (Phone Screen Only) - SDE ML (Reject)
Min sliding window in 2D/mtrx.. Ouch. Brute force no bueno... Maybe next time.
Grubhub Staff DS (Reject)
Really strange. Recruiter had no idea what the interview would be about, spent 2 weeks trying to get information which ended up being conflicting and changed about 5 times. Ultimately the feedback was all positive apparently but they decided to change the requirements for the role or some BS.
Atlassian - Sr. MLE (Passed)
Loved the process for this company! Professional, genuinely interested interviewers, job related tech questions, all good until the onsite for a technical ML interview where the interviewer didn’t know anything about ML… Very strange, but this also happened to be the HM, so some red flags. Passed all the interviews, I wasn’t convinced of the team I’d be joining so asked to look for possible other opportunities within the company where I could have a greater impact.
Apple - Snr. MLE (Waiting)
Nice process, the details of the role I was interviewing for were not clearly defined so it took a few different conversations up to the director level to determine exactly what they were looking for. Overall the people I met with were mostly great and seemed mostly interested. The questions were fair but there was no preparation information given by the recruiter.
Microsoft - Sr. Data & Applied Scientist (Offer)
A little hit or miss (I interviewed for a couple of different roles) but appreciated the first tech screen being with the HM (let’s you get a sense of who you’ll be working with early on). Turned out to be an enjoyable interview process, all questions were fair and relevant and I thought I did pretty well through all. Ended up getting an offer which I am very happy about!
FB - ML SDE E5 (Reject)
Standard FB process you read about. You know their rules, you know what you need to study, show up ready to play! I think I did pretty decent, didn’t miss a coding question (one question I got target time complexity but not optimal mem.). Most questions were from LC. I received feedback that I did well in coding and system design, but needed more signal in behavioral and ML system design (which are both usually my strengths). My ML sys design question was CV domain for which I have little to no experience in (CV is not mentioned on my resume at all) and my recruiter told me they shouldn’t have asked that question, the interviewer even said “I know this is isn’t your area of expertise”… No favors there. After the panel met, they decided not to give me a shot at those rounds again which was very disappointing as my recruiter was really optimistic they would at the very least or pass me to hiring comittee and I would think no decent person could reject someone for not passing a behavioral because they don't have exceptional responses for every scripted 'tell me a time when....' question. We were wrong.
** In addition to these I recieved another offer and was rejected from two other smaller companies following onsites.
My advice to anyone still reading is stick with it. Interviewing is not easy, most of us will fail many times but persistence and perseverance are truly needed. I personally do not come from a traditional CS background, so have always had a lot of self doubt in this industry, especially when interviewing and especially coming from a more DS background for DS + algorithm coding interviews in the more engineer focused roles! This interview season I learned a bunch, and in addition to a new role which we always hope for, is something that only increases your skills/market value which you can always keep building on – it will get easier. While you can never rely on luck, I feel like most of the time you need a little luck to get an offer, one bad interviewer, one bad question is all it can take sometimes to miss out on an opportunity. Keep going, you will find the interview where everything goes your way!
Prep:
In general I tried to code most days to stay sharp. I would try to learn a new system over a week or so and explore components or concepts I was unfamiliar with and take notes so I could revise. I'd find common design patterns (eg. ML recommender systems, search systems etc.) and ensured I had a good enough general understanding of them to recite off the top of my head.