← notable Interview Insights

notable·Software Engineer·Onsite - System Design / Architecture·Intermediate

Intermediate
Jul 2026

Summary

System design question for a Software Engineer role at Notable. Just one question but it had enough layers to keep you busy for a while.

Questions Asked (1)

Q1

Design a dimmer switch that supports exactly 3 brightness levels, where all bulbs share the same level tiers but each bulb has a different max wattage, so the actual watt output per level varies by bulb.

System DesignData ModelingTechnical Trade-offs
Author's notes

I jumped straight to the UI layer and kind of ignored the data modeling problem underneath.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then model the dimmer as a system with shared level tiers and per-bulb scaling. Discuss data modeling for bulbs and levels, and trade-offs between centralized vs. distributed control, emphasizing extensibility and correctness.

Pro tip: Demonstrate maturity by explicitly calling out the difference between logical brightness levels and physical wattage, and how you'd handle edge cases like bulb replacement or adding new bulbs without disrupting existing ones.

1. Clarify Requirements and Constraints

Ask questions to understand the scope: Are bulbs individually addressable? Is the dimmer a physical device or software? What are the exact wattage tiers? This ensures you solve the right problem.

2. Define the Data Model

Model bulbs with attributes like max wattage and current level, and levels as an enum (e.g., LOW, MEDIUM, HIGH). Define a mapping from level to a percentage of max wattage, ensuring all bulbs share the same tiers.

3. Design the Control Logic

Implement a dimmer controller that sets the level for all bulbs or individual bulbs. For each bulb, compute actual wattage as percentage * max wattage. Consider whether the dimmer stores state or delegates to bulbs.

4. Discuss Trade-offs and Extensibility

Compare centralized vs. distributed control, and how to handle adding new bulbs or changing tiers. Address consistency, fault tolerance, and whether to use hardware or software solutions.

5. Validate with Examples and Edge Cases

Walk through an example with two bulbs of different max wattages to show the output per level. Discuss edge cases like zero wattage, bulb failure, or simultaneous updates.

Key Points to Mention

  • Separation of logical brightness levels from physical wattage output
  • Data model: Bulb (max_wattage, current_level), Level enum with percentage mapping
  • Centralized dimmer controller vs. per-bulb control and state management
  • Trade-offs: simplicity vs. flexibility, hardware vs. software implementation
  • Extensibility: adding new bulbs or levels without breaking existing configuration
  • Edge cases: bulb replacement, power limits, and synchronization of levels

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