A great rule of thumb I’ve read on HN is that a great developer is one who understands at least one layer of abstraction below where he/she works (but 2 is better). That doesn’t compiler intrinsics if you are programming in high level languages, but it does include in my opinion the general tooling of the language, its way of execution, etc.