When software meets hardware, engineering principles remain the same, but the defaults change—from testing devices to handling disconnection, energy, diagnostics, observability, and recovery.