Software engineering is a field with various verticals and domains. Each of these domains requires some specific skillset for a software engineer to succeed in their role.
It's reasonable to recognize software engineers' value by their technical skills. But we often undermine that along with technical skills, non-technical skills are equally important. Based on my observation throughout my work experience, I find the following skills which are often underrated.
One of the admirable qualities of a senior role is their ability to foresee the impact in all areas, no matter how small a change/feature. They bring all their expertise to those brainstorming sessions to help you figure out future consequences. This helps create a safe environment for the team to hear and resolve various concerns.
The senior engineer always makes their presence count with one of the areas you will find them helping most is optimizing dev processes. They always keep track of the difficulties observed in the process and later help to overcome them. They not only identify the problem areas but also proposes options for their resolution to make the life of another engineer hassle-free.
Sometimes, a software engineer might over-engineer a task/project in their intent to make it more scalable and reliable in the future. An experienced engineer will always question the scope of the project and tries to balance the implementation. This helps the team achieve the results with minimum effort keeping the scope for future enhancements.
A senior engineer in the team always looks out for any problems in the current system. This skill always helps you discover new opportunities within the project. After spending some days or months working on a product, they can better understand the friction points and proposes new ideas/features. This helps build product backlog and keep tech debt on track.
An experienced engineer will always focus more on refining the requirements before moving to the implementation. They always make sure to understand what's the ask by clarifying the requirements. This helps the product team to understand any bottlenecks in the initial phases of the scoping.
It's natural to give more importance to the technical skills of a software engineer. But the skills mentioned above are equally dominant to achieve greater heights in their role that also helps the team succeed. I think the time is right to recognize these skills with equal importance!