Useful Resources for ML / AI Interview Prep
I just finished a job search and I thought I would list things I found useful in case it can help others.
Websites - leetcode.com
I did the highest frequency questions (160 in total) from the companies I applied to. Easily worth the money I spent by subscribing for four months ($140) as this site is an amazing resource. I found it useful to pay for the subscription in order to access locked questions and see solutions. Things clicked once I was able to start seeing patterns. E.g., this one I can approach by recursion/memoization/dynamic programming, this one is knapsack, this one is backtracking, etc. In a day full of interviewing, it is amazingly nice to encounter a coding problem you are confident you can solve as soon as you hear the description. This turns a potentially stressful interview into a bye round.
Websites - confetti.ai
This site is amazing. It is like leetcode but for ML / AI. They have practice problems that require numpy and even kaggle-like problems where you submit output from a trained model and get scored.
Books - Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow
This book is a great overview of modern ML. I skipped the scikit-learn specifics but made sure I understood all the concepts.
Books - Designing Data-Intensive Applications
I was dreading the system design rounds and this book gave me the background I needed to feel more confident in them.
Podcasts - OCDevel's Machine Learning Guide
This podcast is a high level overview of ML and I found the host engaging. It is one of the few ML podcasts I could find that wasn't a series of in-depth interviews. I found it was useful to listen to it while driving or walking, and any time the host mentioned a topic I was unfamiliar with I made sure to research it more thoroughly.
Things I wish I knew in hindsight - Preparation
Being good at my current job is not enough to interview well. In my over-confidence I bombed one of my first interviews at a company I really liked. I wish I had realized how much I had to prepare earlier on in the process.
Things I wish I knew in hindsight - Breadth
I neglected to brush up on my SQL and that led to two awkward interviews which I could have avoided if I had just done a few SQL problems on leetcode.
Interviewing tips
1. Every company was willing to break the final interviews up over two days. Doing so made things a lot easier to manage on my end and a lot less stressful.
2. Every company except one was willing to tell me what topics would be covered in my interviews. Definitely worth asking so you know what to expect.
3. I was surprised at how many interviews were breadth as opposed to depth. Make sure you can talk about pretty much any topic for a minute. Every time I encountered a topic that I thought I should know about, I made a flashcard for it and before every interview I reviewed the flashcards to make sure I hadn't forgotten anything.
4. Every interview I did made subsequent ones easier. I would try to land interviews at as many companies as you can and use those to practice for the companies you care about.
5. Interviewing during the pandemic was surprisingly easy. I can only imagine how much harder this would have been if each interview would have required me to physically travel to the company in question.
My outcomes
5 resume rejections or no response (38%)
2 rejections after speaking with recruiter (15%)
1 rejection after first round phone screen (8%)
3 rejections after final round interviews (23%)
2 job offers after final round interviews (15%)
Hopefully describing my experience helps someone.
LeetCode
comments
And also thanks for the tip on confetti. I've been interviewing for ML positions and it's hard to find resources like leet code but even harder for ML systems design.
Edit: typo
The remaining rounds were a mix of behavioral, ML breadth, ML design, and system design.