These days I honestly think that a developer who is marginally above average but plays well as part of the team is much more valuable than someone super smart who isn't a team player. We rarely need to solve complex algorithmic problems these days, just plug some components together and work out why they aren't working.
I have not seen any interview problems where you have to debug an issue having limited information as often is the case in embedded systems. You have a set of logs and the source code to look at. The description of the problem is "X doesn't work" where X is some protocol or procedure. This is something that took me a lot of time to become good at (to not freak out, but to be systematic).