← Whatnot Interview Insights

Whatnot·Software Engineer·Technical Phone Screen·Intermediate

IntermediatePrefer not to say
Apr 2026Remote

Summary

Whatnot gave me a 45-minute implementation interview for a mobile engineer role where the whole thing was basically one big state-management puzzle dressed up as a feature build. Not the worst format I've done, but the time pressure made it spicy.

Questions Asked (1)

Q1

Build a small mobile app with two list screens that fetch data from a mock API. Items can appear in both lists, and updates to an item in one list must automatically reflect in the other. How do you approach the state management and how do you allocate your time across 45 minutes?

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

The item-sync requirement is where it gets interesting.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then propose a centralized state management solution (e.g., Redux, MobX, or React Context) to ensure consistency across lists. Outline a time allocation that prioritizes core functionality and state synchronization, leaving room for testing and polish.

Pro tip: Emphasize that you'll use a single source of truth for items and derive both lists from it, which simplifies synchronization and avoids bugs. Also, mention that you'll write tests for the state logic to ensure updates propagate correctly.

1. Clarify Requirements and Constraints

Ask questions to understand the scope: Are the lists filtered views of the same data? What kind of updates? What mock API? This ensures you build the right thing.

2. Design State Management

Propose a centralized store (e.g., Redux) where items are stored by ID. Both lists select from this store, so updates automatically reflect. Discuss trade-offs of different approaches.

3. Plan Data Fetching and Synchronization

Outline how to fetch data from the mock API, normalize it into the store, and handle updates (e.g., optimistic updates). Ensure both lists subscribe to the same store.

4. Allocate Time for 45-Minute Implementation

Break down: 5 min setup, 15 min state management and API integration, 15 min UI for two lists, 5 min testing, 5 min buffer. Prioritize core functionality.

5. Discuss Testing and Edge Cases

Mention writing unit tests for reducers/actions to verify updates propagate. Consider edge cases like concurrent updates, error handling, and loading states.

Key Points to Mention

  • Single source of truth for items to avoid duplication and inconsistency
  • Normalized state shape (items by ID) for efficient updates
  • Use of selectors to derive list views from the store
  • Optimistic UI updates for better user experience
  • Time-boxing and prioritization to deliver a working prototype
  • Testing state logic to ensure synchronization works correctly

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