PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/Software Engineering Fundamentals/Coinbase

Implement a Reusable Dropdown Component

Last updated: May 11, 2026

Quick Overview

This question evaluates skills in reusable frontend component design, including API design, state management (controlled vs uncontrolled), event handling, keyboard navigation, and accessibility (roles, focus behavior, and ARIA) for production-ready UI components.

  • hard
  • Coinbase
  • Software Engineering Fundamentals
  • Frontend Engineer

Implement a Reusable Dropdown Component

Company: Coinbase

Role: Frontend Engineer

Category: Software Engineering Fundamentals

Difficulty: hard

Interview Round: Onsite

Implement a reusable dropdown component for a production frontend application using a modern framework such as React. The component should support a clean props API and be reusable across different product surfaces. In the interview, implement the core behavior and explain which production concerns you would handle if you had more time. Requirements: - Render a trigger element and a dropdown menu containing selectable options. - Allow the caller to provide options, labels, values, disabled states, and an `onChange` callback. - Support both controlled and uncontrolled usage for the selected value and open/closed state. - Close the menu when the user selects an item, clicks outside, or presses Escape. - Handle keyboard navigation at a basic level. - Be accessible enough for a real UI component: appropriate roles, focus behavior, and ARIA attributes. - Explain how you would extend it for production concerns such as placement near screen edges, scrolling containers, portals, virtualization, theming, testing, and integration with a design system.

Quick Answer: This question evaluates skills in reusable frontend component design, including API design, state management (controlled vs uncontrolled), event handling, keyboard navigation, and accessibility (roles, focus behavior, and ARIA) for production-ready UI components.

Related Interview Questions

  • Debug and Extend Cursor Queries - Coinbase (hard)
  • Design a task management system with TTL - Coinbase (medium)
  • Implement a blog feed with fetching and state - Coinbase (medium)
Coinbase logo
Coinbase
Jan 5, 2026, 12:00 AM
Frontend Engineer
Onsite
Software Engineering Fundamentals
0
0

Implement a reusable dropdown component for a production frontend application using a modern framework such as React.

The component should support a clean props API and be reusable across different product surfaces. In the interview, implement the core behavior and explain which production concerns you would handle if you had more time.

Requirements:

  • Render a trigger element and a dropdown menu containing selectable options.
  • Allow the caller to provide options, labels, values, disabled states, and an onChange callback.
  • Support both controlled and uncontrolled usage for the selected value and open/closed state.
  • Close the menu when the user selects an item, clicks outside, or presses Escape.
  • Handle keyboard navigation at a basic level.
  • Be accessible enough for a real UI component: appropriate roles, focus behavior, and ARIA attributes.
  • Explain how you would extend it for production concerns such as placement near screen edges, scrolling containers, portals, virtualization, theming, testing, and integration with a design system.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Coinbase•More Frontend Engineer•Coinbase Frontend Engineer•Coinbase Software Engineering Fundamentals•Frontend Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.