I disagree with many things here.
Ali Kazi

Hi Ali,

I appreciate your feedback. I respect your opinion but I see things a bit differently.

Mainly, I make a difference between horizontal and vertical knowledge. I value the latter over the former. I also value engineers who understand the core concepts and fundamentals of computer science. Being aware of the time vs memory tradeoff is both basic and fundamental and not knowing that will have non negligible impact on the way you solve problems and write code.

Having some knowledge about the Android stack top to bottom is very important for a senior engineer. Engineers need to understand the abstractions they are building their apps on. This is vertical knowledge. Things that matter and that are directly related to that: memory management, performance, security, IPCs are just a subset of that. I recommend reading the following article on this topic: https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ — this explains that most abstractions have some degree of leakage and therefore it helps understanding how they work.

On the other hand, knowing the entire set of APIs that the application framework provides to me is unnecessary as this knowledge can be easily found in the online documentation. This is horizontal knowledge.