Summary
I completed a technical phone screen for CoreWeave (formerly Weights and Biases) in USA, where I was tasked with designing a data filtering system based on complex search queries, including support for conditional expressions and equality comparisons.
Full Experience
Completed a technical phone screen for Weights and Biases (now part of CoreWeave).
Question
You're given data like this at Weights and Biases and a common operation is filtering for data you want based on your search query. For example:
data = [ {'a': 2, 'duration': 20, 'val_acc': 0.9}, {'b': 5, 'loss': 30, 'duration': 25} ]
condition = (duration > 22) AND (a > 1 OR b < 3)
Part 1: Basic filtering
Assume that a row of data is a set of key/value pairs where value is float
Support < and > comparisons
You don't have to worry about string parsing the condition as you can define the representation yourself
Part 2: Choice of
Pick one of:
- Print the stringified condition expression based on your part 1 design
- Suppport equality condition for strings, booleans, etc
I went with part 2 of adding equality condition, but also updated the < or > condition to attempt to convert both the data value and threshold value to float and if we fail, return false
Reflection
- Chill interviewer
- Interviewer didn't really engage in the "collaboration part of the design". Rather they gave me free reign over the design and just watched
- Asking good clarifying questions to button up the scope helped me get a good handle on the problem
Interview Questions (1)
You're given data like this at Weights and Biases and a common operation is filtering for data you want based on your search query. For example:
data = [ {'a': 2, 'duration': 20, 'val_acc': 0.9}, {'b': 5, 'loss': 30, 'duration': 25} ]
condition = (duration > 22) AND (a > 1 OR b < 3)
Part 1: Basic filtering
Assume that a row of data is a set of key/value pairs where value is float
Support < and > comparisons
You don't have to worry about string parsing the condition as you can define the representation yourself
Part 2: Choice of
Pick one of:
- Print the stringified condition expression based on your part 1 design
- Suppport equality condition for strings, booleans, etc