Coding Round 1:
Two Variations of https://leetcode.com/problems/count-all-valid-pickup-and-delivery-options/
Given array of pick up and delivery options, make sure that the array is valid.
Example 1:
Input: ['P1', 'D1']
Output: True
Explanation: P1 comes before D1
Example 2:
Input: ['P2', 'D1', 'P1', 'D2']
Output: False
Explanation: D1 comes before P1, but it should come after.
Note to future solver: Make sure you cover case like P11 and P99 etc. where number followed by P and D is in double digits.
My thoughts: Was able to solve this, got stuck at the P11 test case, they hide the test cases from you, so it's difficult to know/ think of all edge cases. Was able to produce working output.
Given N generate all valid combinations of Pick up and Delivery.
Example:
Input: 1
Output: ['P1', 'D1']
My thoughts: Was able to produce working output without any help for this one using recursion.
Coding Round 2:
System design Round:
Implement this feature/ app where for every order the customers can go rate the individual items they purchased from he restaurent and write a review on it. Basically the feature similar to amazon reviews.
My thoughts: I start with small scope and go big and scale.
Scope: 1-10 people
Did class design, api design.
Scope: 100,000 people
Did high level diagram
Scope: 1M people
Did detailed component design, told why Relational vs non relational, table design etc.
Result: Got rejected. 😿 👩🏽💻
Aftermath in my head:
I am a senior engineer in my current role, this was my first onsite after 1.5 years. I conduct interviews every day and lead debriefs, how can I reject/ select people if I cannot crack an interview myself. I just feel like an imposter, less qualified to judge someone else.