Cracking the Whatnot Software Engineer Interview: Navigating Tough Coding Challenges

whatnot | Software Engineer | Interview Experience

Interview Date: Not specified
Result: Not specified
Difficulty: Not specified

Interview Process

The interview process consisted of three rounds.

First Round:

  • Format: Online interview with Karat
  • Duration: 15 minutes for resume review, followed by 45 minutes of coding.
  • Coding Question: A problem from the Jianshu question bank related to access control card validation.

Second Round:

  • Format: On-site interview
  • Duration: 1 hour of coding.
  • Coding Questions:
    • Question 1: LeetCode 680.
    • Question 2: Sending notifications. The task was to manage a list of notifications, where each notification contains a message and the day it was sent. Given a limit ( k ), the requirement was to ensure that no more than ( k ) different messages could be sent in one day. The solution involved using a map to track the last sent day of each message. Clarification of input and output was crucial due to the complexity of the problem.
    • Follow-up: If the limit was not just one but ( k ), the candidate suggested using recursion to check and decrement ( k ).
    • Follow-up 2: Adding a cooldown period if the limit was reached, requiring a wait before sending messages again. The candidate proposed using a value in the map to track the number of days passed. The interviewer hinted that a queue could also be a viable data structure.

Third Round:

  • Format: Video interview
  • Duration: 50 minutes of coding plus 25 minutes of product sense discussion.
  • Coding Questions:
    • Question 1: Check for unsafe words using a set to determine if any unsafe words are present.
    • Question 2: Check for unsafe phrases, where the phrases consist of multiple words and must appear in their entirety in the text. The candidate proposed using a prefix tree with words as keys.
    • Note: The candidate initially implemented the second question character by character instead of word by word, but adjusted after the interviewer’s guidance.

Technical Questions

  1. LeetCode 680 (String Manipulation)
  2. Sending Notifications (Data Structures)
  3. Check Unsafe Words (Set)
  4. Check Unsafe Phrases (Prefix Tree)

Tips & Insights

  • Clarifying the problem requirements and expected outputs is essential, especially for complex questions.
  • Familiarity with regular expressions can be beneficial for handling text processing tasks.
  • When faced with follow-up questions, focus on explaining the thought process rather than writing complete code.