Design an In-Flight Entertainment Experience for a Small Screen
HexSoftware Engineer · OnsiteLast updated
This problem tests the ability to design a high-availability, accessible, and modular UI/UX system under significant physical and connectivity constraints.
Problem Statement
Design an in-flight entertainment (IFE) application interface for a high-density, 4-inch touch screen embedded in an armrest. The primary goals are to provide real-time flight telemetry (map/altitude/time) and a music player.
Constraints & Requirements
- Environment: Turbulence is common, necessitating large touch targets and forgiving UI components. The system must operate primarily offline, syncing flight data from a local server.
- Connectivity: Intermittent Wi-Fi. Media is cached locally on the seatback unit; flight telemetry is pushed via the internal LAN.
- Accessibility: Must support high-contrast modes and intuitive navigation for users with limited motor control or visual impairments.
- Extensibility: The architecture should allow for future modules (e.g., ordering food, duty-free shopping) without bloating the initial load time.
Deliverables
- API & Data Model: How does the seat unit fetch telemetry from the plane's flight server? How are music playlists stored/synced?
- UI/UX Strategy: Propose a navigation structure that minimizes clicks and accounts for a small, jittery interface.
- Architecture: Design the client-side module loading strategy to ensure the app remains responsive while adding new features.
- Metrics: Define 3 Key Performance Indicators (KPIs) to measure user satisfaction and system health.
Hints
Hint 1
Consider a 'State Machine' pattern for the UI to ensure the interface can recover gracefully if a user's touch is interrupted by sudden movement.
Hint 2
Use a 'Local-First' architecture where the seat unit caches data and handles local event queuing to mask latency from the plane's internal network.
Hint 3
Think about 'Modularization' through lazy-loading components or a micro-frontend approach to keep the core binary small and performant.
Follow-up questions
- How would you handle localization for a global airline while keeping the initial deployment package size under 50MB?
- If the touch screen becomes unresponsive during turbulence, what physical or software fallback mechanisms could you implement?
- How would you instrument the application to detect 'rage-tapping' or accessibility friction without compromising user privacy?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.