← Whatnot Interview Insights

Whatnot·Software Engineer·Technical Phone Screen·Intermediate

IntermediatePrefer not to say
Jul 2026Remote

Summary

Coding interview at Whatnot for a Software Engineer role. The task was building a functional Tic-Tac-Toe app in 45 minutes, which sounds trivial until you're actually in it trying to keep state clean and not embarrass yourself.

Questions Asked (1)

Q1

Build a working Tic-Tac-Toe mobile app within 45 minutes. It needs a 3x3 grid, two local players alternating turns, win and draw detection, move prevention after the game ends, a status display, and a reset button.

System DesignTechnical Trade-offsAlgorithms & Data Structures
Author's notes

The scope felt manageable at first but the win detection logic is where I started second-guessing myself.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and choosing a simple tech stack (e.g., React Native or Flutter) that allows rapid development. Then outline a minimal architecture: state for board, current player, and game status; pure functions for win/draw detection; and a simple UI with grid, status, and reset. Implement incrementally, testing core logic first, then wiring up the UI.

Pro tip: Focus on clean separation between game logic and UI, and use immutable state updates to avoid bugs. Verbally explain your trade-offs (e.g., using a simple array vs. a more complex data structure) to demonstrate engineering maturity.

1. Clarify and Scope

Confirm requirements: 3x3 grid, two local players, win/draw detection, move prevention after game ends, status display, reset button. Ask about platform preference (iOS/Android/cross-platform) and any constraints.

2. Choose Tech Stack and Architecture

Select a framework (e.g., React Native, Flutter, or native) based on speed and familiarity. Outline a simple architecture: state management (e.g., useState or Provider), pure functions for game logic, and presentational components.

3. Implement Core Game Logic

Write functions to check win conditions (rows, columns, diagonals) and draw (board full). Manage state for board (array of 9), current player, and game status (playing, won, draw). Ensure moves are blocked after game over.

4. Build UI and Wire Up

Create a 3x3 grid of touchable cells, a status text showing current player or result, and a reset button. Connect UI to state and logic, ensuring moves update the board and status.

5. Test and Refine

Manually test win, draw, and move prevention scenarios. Fix any bugs and ensure reset works. If time permits, add simple styling for clarity.

Key Points to Mention

  • State management: board as array, current player, game status
  • Win detection algorithm: check rows, columns, diagonals efficiently
  • Draw detection: board full and no winner
  • Move prevention: disable cell taps when game over
  • Reset functionality: clear board and reset state
  • Trade-offs: simplicity vs. extensibility, performance considerations

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.