← Coinbase Interview Insights

Coinbase·Frontend Engineer·Technical Phone Screen·Intermediate

Intermediate
Jun 2026

Summary

Coinbase frontend round where they gave me a partially built React blog app and asked me to wire up a form for adding new posts. Pretty focused exercise, more about clean state management than anything algorithmic.

Questions Asked (1)

Q1

You're given a React app that displays a list of blog posts loaded from a local JSON file. Add a textarea that lets users write and submit a new post, appending it to state so the list updates immediately without a page reload.

Technical Trade-offsAPI & IntegrationsSystem Design
Author's notes

The core of it was keeping the textarea as a controlled input and making sure the list re-rendered from the same state slice rather than some parallel array.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and constraints, then outline a component-based solution using React state and controlled inputs. Emphasize immutability, performance, and user experience, and discuss how you would test and handle edge cases.

Pro tip: Mention optimistic UI updates and how you would handle potential failures if the posts were persisted to a backend, showing foresight beyond the immediate task.

1. Clarify requirements and constraints

Ask about data persistence, validation, and whether the new post should be saved to the JSON file or just in memory. Confirm that the list should update immediately without reload.

2. Design component structure and state management

Decide where to hold the posts state (e.g., in a parent component) and how to pass down an addPost callback. Use a controlled textarea for the input.

3. Implement the add post functionality

Create a handler that appends the new post to the existing posts array immutably (e.g., using spread operator) and updates state. Clear the textarea after submission.

4. Consider performance and UX

Discuss memoization of list items, key usage, and potential debouncing if needed. Ensure the UI provides feedback (e.g., disable submit if empty).

5. Test and handle edge cases

Mention unit tests for the add function, integration tests for the form submission, and edge cases like empty input or very long text.

Key Points to Mention

  • Immutable state updates using spread operator or functional setState
  • Controlled component pattern for the textarea
  • Lifting state up to share posts between list and form
  • Using unique keys for list items to optimize reconciliation
  • Potential for optimistic UI updates if backend integration were added
  • Accessibility considerations for the form (labels, aria attributes)

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