As we grow in such a fast-paced industry like technology, we often lose sight of what it takes to get hired. That statement is both true and false. Some of us find ourselves spending long tenures of time at specific companies while the rest of us jump ship rather frequently in order to find greener pastures.
Through countless hours of learning, failing, and succeeding we eventually reach a point where we are autonomous enough to proactively solve our own challenges. Be that engineering features, tackling a backlog of bugs successfully, or aiding more junior members of the team. These are some of the key points that differentiate less experienced engineers from those who are more experienced.
However, what does it really boil down to when we label an engineer as "senior"? What should companies be looking for when they advertise the position? And, what qualities should you display in order to grab the attention of recruiters and/or HR departments?
Here are 5 qualities of senior engineers that I look for and more importantly, rely on:
One of the biggest red flags I see amongst teammates is when an engineer does not come to the party with solutions to a problem. Regardless of whether the solution is correct or the best possible solution for that problem. It's the mindset of providing a solution when faced with a problem that becomes an outstanding quality in a teammate.
Coming up with your own solutions means that you've given thought to the challenge, in a constructive and pro-active manner. Rather than admitting defeat straight away and declaring "I don't know".
I can almost guarantee you that the majority of your peers probably have either come across the situation you face or know someone who does, so they're not stressed about the fact that you didn't arrive at the expected outcome, you just showed a willingness to and that's what counts.
Everyone has imposter syndrome, everyone. It just occurs at relative degrees. When someone new to web development faces a difficult learning curve they think to themselves: "I will never understand this". It's the same thought and gravity as that of a more experienced engineer thinking: "I have no idea how to write this function in the most performant way possible" or "I have no idea how to ensure that this code runs asynchronously".
In my opinion, the voice inside your head that tells you you can't do something needs to be countered by a voice outside your head that tells you, you can. That voice can be from a mentor or member of a community that you respect. The most important part of dealing with imposter syndrome is acknowledging the fact that you and I both have it and it's okay because it helps push us to do things we don't think we can do.
Perhaps one of the most daring parts of being a senior or lead in a tech company is taking ownership and responsibility for code features that you have very little experience with.
It can be a real struggle, and there will be times when you feel completely hopeless and paralyzed with confusion. There is always light at the end of the tunnel and there will always be someone who has either been through the same thing or knows how to implement what you're working on.
It's important to carry on leading in a situation like this.
Saying: "I don't know how to do this...", followed by: "I'm going to time-box it to 2 hours and see where I land up" or "We should bring in person x to help provide clarity" ensures transparency when it comes to dealing with the situation.
I haven't spoken much about technical skill here as that can be learnt with repetition and motivation. If you dedicate yourself to learning a new concept or language you will eventually overcome the learning curve and beat it.
Far too often, companies "go fishing" and look to hire engineers that appear to know almost every computer language available today. No one actually wants to hire that "unicorn".
Good leaders hire those that can apply their knowledge and skills to challenges. You don't have to know everything about Webpack or Node, or React. Working knowledge is important, and you cannot do your job without it, but every discipline will present a challenge you have no idea how to solve and if you can admit that you are far closer to overcoming it.
Furthermore, if you never admit that you don't know how to do something, it burns resources, time and patience. 3 things that are very precious.
One of the quickest ways to grow is being able to consume criticism. Be that good or bad. When people identify your shortcomings in a way that allows you to grow and not feel like you've failed, it presents you with an opportunity to better yourself alongside your peers. Sometimes it's really hard to hear, but if you can take it in your stride you will see tremendous amounts of respect headed your way.
That being said, the way you give out criticism is also really important. No one likes to feel criticised, and the way you handle constructive criticism in code reviews or retrospectives with peers and junior members of the team really shows your worth as a contributing member and leader.
Today, for just a moment, grab a coffee and think about these 5 points in your career journey. If you place focus on them you will undoubtedly see that your position in a team starts to mould and change, for the better.