On becoming a senior engineer
The five stages of getting a promotion, impostor-syndrome style:
Denial: This isn't real, I don't deserve this.
Anger: Goddamnit, brain, this is why we can't have nice things!
Bargaining: Maybe it's because of one of these other implausible reasons I just made up other than that I deserve this.
Depression: Shit, I've got them all really fooled, I'm more of an impostor now than ever.
Acceptance: Wait, I earned this! I do deserve it! Now where's my celebratory donut?
As people who follow me on twitter may have seen, I recently got promoted to senior operations engineer at Etsy. In addition to going through all the above exciting emotions, I've been thinking a great deal about all the circumstances that led to this promotion, the help I've had along the way, what it means to be a senior engineer in general, and how people can grow and develop their careers and skills in a world that seems to only care about unicorn rockstars.What was necessary for me to become a senior engineer?
A clear trajectory. Having a clearly defined path to senior engineer (and beyond) made it much easier to assess where my skills were in relation to where they needed to be, in addition to simply letting me know that this kind of career progress is even possible. Something like a skills matrix outlining what skills are expected at what level helps to plan growth and future work for both individuals and their managers. It can also help to cut down on biases, both conscious and unconscious. Without any sort of formal or measurable criteria for promotion, it can be all too easy to run into situations where "he *feels* like a senior engineer" but "I just don't know if she's ready". Having clearly defined trajectory and requirements can help avoid those sorts of situations by helping to make sure everyone is being evaluated on the same criteria.
Useful, actionable feedback. When you're trying to accomplish something, getting feedback on your progress that is actually useful is key. I've worked in places where having any kind of regular, formal reviews was "too much bureaucracy" and where the only feedback I was able to get from people was "oh, yeah, you're doing great, just keep it up." Being told to just keep it up doesn't really help you improve, and only adds to the frustration of seeing people promoted around you while you're standing still. Here, I got feedback like, "Your technical skills are right where we expect them to be, but we'd like to see you take more leadership roles on bigger projects to get to the next level," followed by examples of projects that would meet those requirements. That's actually helpful - I can do those things! Getting useful, actionable feedback about where I was at and what I needed to work on really allowed me to focus on those particular areas for improvement.
Proactive management. Over the years, the best managerial relationships I've had were with managers who took proactive roles in developing the careers of the people they managed. My manager at Etsy added a weekly 1:1 to our calendars my first week, has volunteered feedback and advice regularly, asked me where I wanted my career to go, and came to me about getting to senior engineer rather than waiting for me to bring it up. Contrast this with managers who took no such steps, where getting feedback or talking about career growth was like pulling teeth - I felt unsupported, wondering if moving forward was even possible for me there. Having a manager who will go to bat for you can be a huge help in larger organizations with more process involved around promotions, but also is great for just the feeling that somebody else wants you to succeed.
Awesome colleagues, mentors, and role models. Have I mentioned recently how much I love not being a one-person ops team? Seriously, it's the best. But more concretely, working with a team, many of whom are senior to me, all of whom are excellent ops people, has been an incredible help. Not only do I have people to bounce ideas off of or who can impart technical knowledge, but I can also see in them the kind of behavior that is expected at senior and higher levels of engineering. Senior engineer isn't just a list of things on a checklist and then bam, you're promoted, but rather it's about being a more mature engineer overall, and I get to see that behavior modeled by the people I work with every day. In the engineering organization as a whole, I've been lucky enough to work with people who formally mentored me, people who will jump in on bigger projects, people who will ask the hard questions and help me try to poke holes in my ideas, and people who support me when I'm feeling a bit impostory still.
A safe environment. Obviously, Etsy loves blameless post mortems, and nobody is going to yell at me for making a mistake. But I can't stress enough how important it has been to have an environment where I feel safe as a person. No longer do I have to worry about single-handedly representing my gender or any other demographic. Feeling safe to ask questions means I actually ask them, rather than pretending I know things to avoid looking stupid. More than that, I can let myself be vulnerable with my colleagues, to have moments like this, to seek guidance when I'm feeling unsure about something, to ask for advice rather than pretending I know everything because I'm in an environment where any display of "weakness" is taken advantage of, to even admit that career growth is important to me and becoming a senior engineer is something I want. Safety has been critical to my learning and growth over the past year.
This isn't an extensive list, but in a time when it seems most peoples' focus is on how to hire their next 10x Rockstar Super-Engineers, it's important to take a moment to consider how to grow the engineers you do have. Great senior engineers aren't born - nobody just spawns out of nowhere with years of full-stack development or operations experience. Rather, senior engineers are made, they are grown, but that means that somebody has to take the time to help them grow and improve and mature.
If you're managing or trying to grow a team and you haven't given any consideration to what skills and characteristics you want your team members to have as they progress, you are doing both them and the team as a whole a disservice. If you became a manager because it was a way to progress your own career but you'd rather spend the majority of your time doing technical work, you aren't doing any favors to the people you manage, especially more junior ones who need more guidance and feedback.
And if you're an engineer trying to figure out how to get to senior but it doesn't feel like you're making any progress? Take a look to see how your environment stacks up against the characteristics above. Some environments or teams are much more suited for more experienced people, which doesn't mean that they're inherently bad, but not every place will provide you with the support you need to grow. Learn as much as you can, seek out as much actionable feedback and as many people who can be mentors or role models as you can find, but if you have the choice, don't waste your time in an environment that isn't invested in your growth or in helping you succeed.
Everyone wants to hire senior engineers. Fewer people are willing to put in the time and effort to help their more junior engineers become senior, but that work is critical to developing not only the next generation of badass senior engineers but our industry as a whole.