Today I'm sharing a conversation I had with Ben Ilegbodu.
For those who don't know Ben: He is a Principal Frontend Engineer at Eventbrite and a member of the React and TypeScript communities. Ben's a Microsoft MVP and holds an MS in Computer Science from Standford.
Ben shared a huge amount of wisdom and expertise concerning the process of becoming a senior engineer, but one bit really jumped out at me. Ben said, "There are a number of different qualities that I feel like compose seniority," then went on to share three key characteristics that he felt made one "senior."
This characteristic feels obvious to me, but there is more to it than just shipping a ton of code in a short period.
This also contains the more nuanced skill of writing the correct code early. Being a senior means, you should spend less time chasing incorrect solutions.
Ben referred to this as leadership.
Teaching others is a significant part of being a senior engineer.
Unlike the first and second characteristic, this trait doesn't always get developed by writing a ton of code. Learning to articulate your thoughts and cultivate others is a skill that can be learned outside of the technical world.
This trait is the most difficult to quantify.
I felt like it could be labeled as the "artistry" part of what software engineers do, the sixth sense that develops with experience.
Ben referred to this as being able to find the most elegant or scalable solution depending on what the situation required.
After having spoken with Ben, I feel like I've got a much clearer idea of what it means to be a senior engineer. Going forward, I'll be searching for opportunities to exhibit these traits in my career.
What kind of traits make someone "senior" in your experience?
P.S. If this kind of stuff interests you, listen to a couple episodes of devpath.fm :)