ecobee interview question

Explain a situation where you had to solve a really difficult problem when designing/coding an embedded system (difficult, for e.g. inter process communication, memory management, race conditions, interrupt priorities, real-time operation, robust wireless communication, etc)