PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Whoop

Design a BLE Command Handler

Last updated: May 2, 2026

Quick Overview

This question evaluates a candidate's understanding of BLE communication, concurrency control, command queuing and sequencing, timeout and failure policies, lifecycle and cancellation handling, and testability for production-grade mobile applications.

  • hard
  • Whoop
  • System Design
  • iOS Engineer

Design a BLE Command Handler

Company: Whoop

Role: iOS Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design a Bluetooth Low Energy (BLE) command handler for an iOS application. The app needs to send commands to a wearable device over BLE. Commands must be processed strictly one at a time: - A command may not be sent until all earlier commands have completed. - After sending a command, the handler must wait for either: - the expected response from the device, or - a timeout. - If a command times out, the handler should unblock the queue and continue handling subsequent commands according to a clearly defined failure policy. - Multiple parts of the app may enqueue commands concurrently. - The design should be suitable for production use in a mobile app, including lifecycle, cancellation, error handling, and testability considerations. Explain the architecture, key data structures, concurrency model, timeout handling, response matching, and how you would validate the design.

Quick Answer: This question evaluates a candidate's understanding of BLE communication, concurrency control, command queuing and sequencing, timeout and failure policies, lifecycle and cancellation handling, and testability for production-grade mobile applications.

Whoop logo
Whoop
Apr 17, 2026, 12:00 AM
iOS Engineer
Technical Screen
System Design
2
0

Design a Bluetooth Low Energy (BLE) command handler for an iOS application.

The app needs to send commands to a wearable device over BLE. Commands must be processed strictly one at a time:

  • A command may not be sent until all earlier commands have completed.
  • After sending a command, the handler must wait for either:
    • the expected response from the device, or
    • a timeout.
  • If a command times out, the handler should unblock the queue and continue handling subsequent commands according to a clearly defined failure policy.
  • Multiple parts of the app may enqueue commands concurrently.
  • The design should be suitable for production use in a mobile app, including lifecycle, cancellation, error handling, and testability considerations.

Explain the architecture, key data structures, concurrency model, timeout handling, response matching, and how you would validate the design.

Solution

Show

Submit Your Answer

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Whoop•More iOS Engineer•Whoop iOS Engineer•Whoop System Design•iOS Engineer System Design
PracHub

Master your tech interviews with 8,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.