My undergrad background is in EE and good amount of research work with compilers in grad school. I am apprehensive about working on low-level software because the state-of-art in commercial OS development in smart-phones always lags a few years behind desktop or high-end systems. The software problems have already been solved by other folks.<p>Example, Low-level software is poorly designed from a software engineering point of view and its problems plainly evident over multiple hardware product cycles.