A senior engineer also should know about effective time use. When should they spend time on something, and what issues and details they should ignore. What problems should be solved on the higher level architectural level, and what requires the low level optimization.

Quite a lot of junior engineers spend too much of their time worrying about the little details, e.g. which of the 3 potential ways to solve a simple problem (such as doing a substring match) is theoretically "the best". Sure you might consider them a bit to make sure you don't make huge mistakes that will completely kill the performance for your application, but in the end it's almost always more important to get things done than to get them done "perfectly".

Especially in the modern world where quite a lot of development is done for the web, it's more important to consider the overall architecture than the little details. The architecture is what makes your system scale and perform under load, not the micro-optimizations of substring matching.