I applied broadly in September, and the first time a recruiter reached out I went straight into the interview process. I have to say the bar for DS goes up every year, and the cost-benefit of this role keeps getting worse. The posts I saw here before all described 2-3 mixed SQL and Python questions, but this time it was 4 SQL questions and 2 Python questions right from the start, all brand-new questions I had never seen, and I didn't finish.
SQL: there are two tables, roughly like this:
- fund_transfers: amount (transfer amount), user_id, bank_id, and the transfer direction (outgoing / incoming)
- bank: bank_id, user_id, bank_name
The question: first find each user's largest single transfer amount at each bank, then sum those maximums by bank_name, and finally return the bank with the largest total. There was also a part that ranks by outgoing and incoming amounts. The same user maps to multiple bank_ids, and that detail is very important. I also noticed that Robinhood really likes to test double or multiple joins, which is the same pattern as the interview reports I had read.
Python: I was given a CSV of Robinhood order placement details, with fields roughly like dt, order_id, execution_price, execution_quantity, order_quantity, order_status. The same order_id can have multiple rows, corresponding to multiple partial fills. The tasks:
- Calculate order_fill_rate
- Analyze which factors affect order_fill_rate
I only had time to finish the data preprocessing (the first task requires aggregating by order_id, which is not as simple as it looks), and I ran out of time to write the analysis after that.
At the end I timidly asked the interviewer how many candidates can finish all the questions within 45 minutes. He said the point is not to finish, but to see how you get started and show your thinking. I'm guessing I'm done for. Sharing this anyway.
Discussion
Loading comments…