If you have a lot of time to waste or want to Exercise your patient and have no respect for your knowledge and previous experience, congratulation, grail is the company to interview for.
I have applied for Staff data scientist position. And I went through three round of interviews, first by hiring manager and second a coding interview including dynamic programming which I easily pass them.
Then there was a full interview formed of 4 technical interview and one with recuiter: system engineering, data structure, and machine learning and then a chat with hiring manger.
I believe I have responded 100% of machine learning and deep learning questions correclty. I also did 100% in in system engineering. The interviewer asked me an algorithm question and then a follow up question about unit test where I chose python as a language where he was not familiar with that, and made a mistake about overflow which does not happen in python.
The worst part was the Algorithm interview where the interviewer asked me to write a code for 3 different tasks in sparse matrices. I chose dictionary in python as the data structure for this task. The interesting part is that I have written a code that provided the correct response and printed the output.
The sad fact is that, it took them 7 days to respond me and tell me that they did not move forward with my application mainly because they felt I did not have enough experience in coding.
All I know I responded every question completely and with lots of details, and I throughly believe if their process was a fair process I should have been offered the position.
I just do not know how they decide about the outcome of interview, I believe the person who asked me the algorithm question was pretty biased toward me since the start of the interview, despite the fact that my code generated the correct answers.
The only suggestion I can make for them is to evaluate candidates based on their performance and improve their interview process to have an unbiased and fair decision.