Interviewing for DS jobs in the US
Some notes on my experience interviewing for Data Scientist jobs in the US in 2021. For context, I was based in the Netherlands working as a Data Scientist and required a visa (E3) to work in the US. There were a lot of open roles at the time, but due to travel restrictions many companies were unwilling to be a visa sponsor. I applied to 36 roles, heard back from 7, completed all rounds for 3, and got offers from all of them. Including a month of prep, and two months around the holidays with no progress, it took 6 months from start to finish.
Approach
In the past I applied for a single role that I was really interested in, and luckily always got the job. This time I applied to many at once as I didn’t have a clear top pick. It was interesting to see the different approaches and gave some bargaining power for salary negotiations. However, it was a lot of work, so I would limit it to 3 max next time.
Application to Offer Rate
Out of 36 applications, I heard back from 7 companies, did ~20 interviews, and got 3 offers (Shopify, Spotify, and Facebook/Meta). I had referalls for 2 of those, but also heard from their recruiters in the past, so I don’t think that was essential. I dropped out of the process at the onsite stage with Deliveroo and a startup to focus on my top picks, and Uber and Google reached out much later so I didn’t proceed. Some of the other companies sent generic rejections straight away (e.g. Etsy, Grammarly, Square), but many just never responded (e.g. Apple, LinkedIn, Netflix).
Preparing for interviews
I focused on reviewing concepts (e.g. experimentation, hypothesis testing, probability, and machine learning), and practicing questions to answer quickly and confidently.
Interview types:
-
Describe a past project: This often came up in the recruiter and technical screening, as well as the onsite. I prepared a few examples, and roughly followed the STAR method (situation, task, action, result). I found they didn’t really mind whether the project was successful or not, as long as it was clear why. However, for senior positions, the recruiter usually advised me to discuss a project where I initiated it, and was primarily responsible. During the interview, there were usually follow up questions about the methods (e.g. how did you decide on method x and why, or explain a technical detail about it), and some non-technical questions (e.g. how you managed stakeholders, what were the challenges, or what would you do differently next time).
-
Case Study: I would be given a vague business problem and asked how I would approach it (e.g. how would you measure the success of product x, or how would you identify ‘bad’ sellers on a site). Once you’ve clarified the question and scoped it a bit, I found a good place to start is at the end with the goal. Then work through the stages e.g. what data you’re going to need, what techniques you will use and why, how you would validate it (and any edge cases / issues), and how you would implement it or communicate the impact back to the business. For these interviews it helped to look at Product Manager questions/guides: PM questions, StellarPeers, Cracking the PM interview. For examples I found Glassdoor and InterviewQuery useful.
-
Technical skill assessment: Similar to the case study, but usually a bit more specific so the time can be spent focusing on the technical details. For example, you might get a question like how would you design a ranking algorithm for product x? What approaches would you use, how would you validate it? What would you prioritise next? This is also when they might work in some definition questions, e.g. what is a p-value?
-
Coding test: I only encountered SQL and Python interviews, though some allow you to pick a language (e.g. Python or R). The difficulty varied a lot, from doing some simple data manipulation (e.g. grouping, sorting, extracting some value through aggregation), to medium level leet code questions. The expectations also varied with some being ok with minor syntax errors (didn’t actually run the code), while others required you to execute the code and return the correct results. I was never asked to give the time/space complexity, but some did ask me what I would do to make my solution more optimal. Almost all also worked in some non-coding questions, e.g. what could you do with this data, or how would you interpret the results in the output? This required taking a step back to think about what problems you’re working on. Tools I used: Strata Scratch, Leetcode, Real Python. I also used Khan Academy and Brilliant to refresh some math/statistics/probability concepts that often come up.
-
Fit or one-on-one interviews: One on one with a team member / manager. This could be a fit or technical interview, or a combination of both. I found these were in general more casual, and more about seeing if you would work well with the team. Some were a series of questions (e.g. tell me about a time your stakeholder wasn’t happy with your work? How did you handle it?), whereas others were more conversational and a mix of discussion about my past projects and what they were working on.
Final thoughts
Compared to the interviews I’ve done in Australia and Europe, the interview process was a lot longer and more generic. I sometimes finished with the feeling that I had just done a series of tests, and didn’t get a chance to share my strengths and what I would bring to the company. However, I’m sure that varies a lot by company. Overall, I hope to never repeat this experience, and will go back to applying for a small number of roles at a time.