Senior

I was recently promoted to senior software engineer. Which warrants an examination of, what does it mean to be senior?

Please note that this is a personal answer, based on my own experience - there is plenty of excellent literature on the subject. The key differentiators of seniority may change between individuals and companies, remote-first and non-remote cultures, etc.

Technical

Certainly, I expect a high technical bar for seniority. This doesn't necessarily mean in-depth knowledge of data structures, algorithms, system design, etc., etc. But it does mean a strong breadth of knowledge, especially throughout the relevant domain of the company stack.

It also means the capability to plan and execute on large scale projects. Note that scale doesn't always imply thousands of lines of code - in fact, I consider it an accomplishment to "thread the needle" on a complex, high impact, broad reaching project in a succint amount of code changes (though clever solutions can also be bad... as usual, it depends!).

To be sure, I believe in continuing to develop my technical skills. But it's not the sole focus of a senior engineer: what's more important is that I feel confident that I could pick up a new technology when necessary.

Mentorship

Mentorship is an important part of seniority. At the moment, I invest time in regular 1 on 1s with other engineers, in particular new team members. Setting aside regular scheduled time creates an open floor for questions and rapport-building that can otherwise be awkward to initiate when working remotely.

In addition, sharing resources for team education is an example of mentorship. For me, this includes articles, tutorials, and conference recordings, that I think would interest the team. Note it's easy to get carried away here and think that just posting links is enough - I think that demonstrations, for example "brown bag lunches", take education to the next level.

Leadership

With increased rank comes increased responsibility, and that responsibility will include coordinating within the team and across teams. A senior commands the respect of their peers and throughout the company: it's a subtle but valuable resource, to be used wisely.

To be more concrete, a senior is expected to plan, propose and execute on projects, process improvements, etc. This involves coordinating others, striking compromise, and developing relationships.

One final note that I think is important: leading by example. Other engineers will look at a senior engineer's behavior and emulate it: they set the bar, so make sure to set a high one. This comes into play for development (writing tests, writing clean code, responding well to PR feedback, etc.) as well as soft skills like communication and friendliness.

Business

Last but not least, seniority raises the bar for business impact. A senior may now have access to more information about business priorities; they are now expected to align their work with making an impact.

This can be challenging, because it goes beyond the day to day work. Understanding business context means expanding my perspective to broader trends within the company and even beyond (e.g. the broader market). It means keeping my finger on the pulse of the business: growth, efficiency, and changing priorities.

This is a skill under active development: I am susceptible to tunnel visioning into my current project (good for focus, not so great for managing changing priorities over time).

And beyond?

I look forward to developing these skills, seizing new and challenging opportunities. Next stop: lead engineer 🚀

social