The overall interview process is very thorough and somewhat difficult. The whole interview process took ~2.5 months (which is the sole reason I am marking this experience as negative).
The interview process starts off with a phone screening through HR that tries to gauge your interest and background experience.
The next step of the interview process is a quick programming/basic statistics/data science check. I got asked questions about how to calculate some basic statistical properties of data using a chosen coding language. I then had to explain a previous ML/data science/numerical analysis project. Finally they asked me about how I would work with data in a given situation. We then discussed the repercussions/different scenarios that could occur.
The final step in the interview process is a very long (I think 6 hours) interview process. This consisted of 2 standard behavioral interviews, a programming interview, and a data science interview. The behavioral interviews are once again pretty standard, and just try to grasp at your interest to best match you to a team.
The programming interview consists of many different programming questions to work through. The first question was a standard fizzbuzz like question, the next one was to write some code to print and describe some information from a distribution, and finally the last one I got to was to sort a list.
The data science interview consisted of how you would start by analyzing a situation. This involved talking about your reasoning for look for different data points, and different algorithms you could use. I was later asked to look at some charts/statistics about a given ML algorithm and analyze what is wrong with them and how it could be fixed.