An Amazon recruiter found me on a job site and had me apply for a senior applied scientist role. The recruiter met with me first and walked me through the general shape of the tech screen — ML breadth plus coding.
- ML Breadth. The interviewer was pretty nice. This part asked a lot of fundamental questions, like:
- What is a p-value?
- What is overfitting and underfitting, and how do you address them?
- What is causal inference? What methods are there?
- What is encoding and decoding?
- Explain gradient descent and backpropagation.
- Explain gradient vanishing/exploding, and how to mitigate it.
- How do you handle highly imbalanced data?
- Describe a scenario where you have 99% accuracy but the model performance is still bad — how would you tackle it?
- What is an A/B test? If an A/B test shows an anomaly, what could be the possible causes?
- Coding was a question from a LeetCode-style practice site. This part was only about 15 minutes, and to my surprise it turned out to be a hard-level question. I hadn't seen it before, and I didn't expect it to be a graph problem, so I asked the interviewer for a hint. He told me to just go with brute force. I roughly explained my approach, wrote maybe a third of the code, and then ran out of time.
Since I didn't finish the coding part, I thought I'd failed, but half an hour later the recruiter told me I passed. The recruiter said that for applied scientist, the bar for ML is higher and needs to be raised, but the coding bar only needs to be at the SDE 1 level. The recruiter read me the interviewer's comments — ML was very strong, and in coding I communicated my approach well. So even if you don't finish writing the code, don't get discouraged — staying in communication with the interviewer and clearly explaining your approach really matters. Thanks to the interviewer for not making it hard on me.
Discussion
Loading comments…