, , , , , , , , ,

Essential skills as as Senior Engineer

Introduction

In tech the term “Senior” is thrown around a lot and often means different things to different people and different companies. In this article I will try to formulate what it means to me. Fair warning: it’s very opinionated. If you are not yet proficient in one of these areas after multiple years in the industry take it as a growth opportunity.

Having enough expertise

This one is quite obvious but is for me only the start of the role description.

Developing other engineers

For me the term Senior only makes sense in opposition to the term Junior. As a Senior you should be guiding and developing Juniors. A “Senior” who doesn’t interact with Juniors and works alone on a project is just an engineer who has more autonomy.

Being a role model

In the same trend you should be a role model for other engineers. Ask (stupid) questions if you see the Juniors shying away from them, stay humble, take feedback graciously, resolve comments, accept blame, be quick to review PR’s, test your code. Promote a healthy attitude and team culture.

Stepping up

If nobody asks the stupid question as a Senior you should. If nobody picks up that difficult ticket as a Senior you should. If nobody fixes the broken test suite you should. As a Junior you could wait for a Senior to fix it, as a Senior it falls on you.

Receiving feedback

Quick tangible feedback loops is what separates real experts from beginner experts. Feedback loops can come in the shape of static code analysis, pairing, automated tests, PR comments, co-worker feedback and retrospectives. The more exposure to these feedback loops an engineer has had the more the years of experience will count. Beware joining companies early in your career as a sole dev. You are depriving yourself from many feedback loops and potentially stunting your growth.

Knowing how to verify assumptions

In the same vein I expect Seniors to know how to use debuggers, read logs, profile and benchmark code. Mental models can be wrong, documentation can be wrong and your intuitions can be wrong. You can initially trust them but verify. Without doing that you are just shooting in the dark most of the time potentially damaging the product or codebase.

Challenging product and design

As a Senior you should have had enough experience in various projects to know when product managers or designers are pushing a potentially bad idea and the confidence to speak up.

Thinking with product and design

In the same philosophy you should have enough experience to help product and design in cutting scope or breaking features into small deployable value adding chunks.

Working in a team

As a Senior you interface with a lot of different people and roles so you should now how to stay friendly, show appreciation, make people feel welcome and stay positive. Anything that makes you a great team player.

Providing bandwidth to adjacent engineering teams

You should be able to help out adjacent people or teams specially in smaller companies.

Providing leadership bandwidth

Your tech lead will appreciate any help with the technical vision and your engineering manager will appreciate help with management. Help can be enforcing guidelines, helping out a struggling team member or providing ideas.