Timeline & standard rounds
The whole process ran from mid-November to mid-December, about a month.
Round 1: Recruiter Screen (30 minutes)
- Standard behavioral questions and background introduction.
Round 2: HM Screen (30 minutes)
- Talked with a Software Engineering Manager. Mainly dug into past project experience, cross-team collaboration experience, and assessed culture fit.
Round 3: Technical interview (2 hours total)
- SQL & Python coding (1 hour): standard data processing, joins, and aggregation calculations.
- Statistics (1 hour): focused on A/B testing, experiment design, and basic statistics concepts.
Round 4: Virtual Onsite / Final Rounds
- Take-Home Presentation (30 minutes): present your take-home results to the Manager and a Senior DS.
- Case Study (1 hour): work through a case with a Senior SWE and a Senior DS. Note: since they're on the MLE team, it's more engineering-focused.
- Wrap-up (15 minutes): final chat with the recruiter.
Core difficulty: the take-home
They send the take-home through HackerRank. Technically you have 7 days (10,080 minutes) to keep the answer environment open, but this is really an "honor system" — the email explicitly asks you to spend no more than 3 to 4 hours, and when the reviewers grade your code, they're grading it on the assumption that you only spent 4 hours.
Business goal: predict "Seller Intent." You get a dataset of 5,000 users, and the task is to figure out which core drivers push new users to eventually convert into active sellers on the platform, and build a predictive model.
Dataset: an 11-column CSV file (seller_intent_take_home_dataset.csv), with fields including: subscription_id, subscription_start, first_sale (first sale time), days_in_trial, subscription_plan, subscription_period, discount_amount, country, site_topic, site_need (site-building needs), and user_agent.
"Pitfalls" / where to focus your effort:
This isn't a clean, perfect Kaggle dataset. Handling ambiguous and dirty data under time pressure is the core challenge:
- Defining the target variable: there's no is_seller label in the data. You have to construct the target variable yourself by comparing the timestamps of first_sale and subscription_start.
- Hidden pitfall: there are edge cases — for example, some users' first_sale actually happens before their official subscription_start. You have to explicitly write out in your report how you handled these timeline overlaps, and clearly state your assumed definition of a "seller."
- Extremely messy survey data: the self-reported onboarding data (site_topic and site_need) is missing a lot — roughly 28% to 32% of rows are blank or missing. And these fields have a lot of long-tail categories. You have to decisively merge them into a reasonable "Other" category before you can use them as features.
- Parsing raw strings: the user_agent column is a completely raw string (e.g. Mozilla/5.0 (Windows NT 10.0; Win64; x64)...). You need strong regex and string-processing skills to extract meaningful features like device, os, and browser from it.
I used Logistic Regression to build the model, to keep the results interpretable, and output the standard metrics (roc_auc_score, classification report). The HackerRank environment is Ubuntu-based Python 3.9. The final submitted PDF/notebook has a strict 20MB size limit, so watch out for drawing too many redundant charts and bloating the file.
Personal advice: absolutely don't spend time chasing a perfect model or doing complicated hyperparameter tuning. Spend 70% of your time on EDA (exploratory data analysis), feature engineering (cleaning up user_agent and the survey data), and clearly writing out the assumptions behind how you constructed the target variable. In the follow-up presentation interview, the interviewers only care about why you made these logic choices when processing the data. Good luck everyone!
Discussion
Loading comments…