This is different from my usual technical articles, but I thought I'd share some points IMO, that I've learnt being promoted as well as promoting people to a senior role.
These are the five often common tells I've found that define a good senior engineer to me. This is what we look for at five2one.com.au and all the clients we work with (I'd love to ask of you to mention more if you've found any!)
1. You mentor your people around you and go out of your way to help.
This is natural for many people, but some tend to not realise how important the role of imparting plays in growing. Teaching others is an excellent way to grow not only your patience but also practice your ability to articulate your message in the simplest way possible
2. You basically need 0 to no supervision and get things done faster and better all day, every day.
I might take back the faster part - I'm not a really fast programmer myself, but I do think knowing how to code for the project vs coding for the file makes a big difference. This is where the "better" statement comes in, you spend more time coming up with elegant solutions that bring in great pipelines and infrastructure to your project that help you not only today but moving ahead.
3. You now start asking the reason behind your code and how it’ll affect the business, you start coding for the business.
This is an important one, moving from engineer to founder, I've often seen the best engineers I liked working with personally as well as in other companies are engineers who always think about the customer and the business first. This brings in the whole principle whereas devs, we need to think like product people, how will our code affect the customer and how will it help us bring in more money/impact/growth.
4. You have the emotional maturity to understand stress and reason behind decisions and time frames
Yes, developing is extremely stressful, its very non-deterministic at times, good ol' bugs come in your way and always skew your timelines. So it's important to not buckle under pressure, stay calm, and address the situation in a manner people understand and respect. If a project isn't going to hit its deadline, make sure you voice it well in advance, and even if they didn't listen, don't go and say "i told you so", instead let the PMs or the founders understand that they need to delay the release and that you care about the customers just as much if not more than the founders. People really respect and appreciate a thoughtful process to stressful situations, emotions are always high, the ones that do great are the ones that bring joy to the situation, make it light or be fully transparent with the leadership team vs just rage quitting or getting angry / frustrated all the time
5. You believe in simplicity and translation of your message. I.e you tend to stay away from unnecessary complex code
This is an all-time important one for me - I was notorious in making the simplest things complex because, you know, always out to prove a point. I learnt over the many many years, the best engineers I've learnt from, who've mentored me or who I've hired, believe in simple and straight forward solutions. Sometimes, it's just better doing an if-else statement that's nested vs an ML algo. Sometimes we don't need ridiculous patterns in architecture because someone else does it or it looks cool - remember when you're coding you need to realise other people will need to understand and maintain it - computers could care less. Build code for humans, not computers (depends on the scenario as well, optimisation does take some readability away at times)
Hopefully, this helps in your hiring process as well as your thought process in your journey.
As always if there's opinions you'd like to add please do, these kind of topics are very loose-ended.
If you liked this, definitely follow me on for the similar stuff:
twitter: twitter.com/@veebuv
linkedin: linkedin.com/in/vaibhavnamburi
instagram:_veebuv
Top comments (6)
You just described a senior engineer that sits beside me at work. You also described my goal for this year. Well done.
Thats awesome! All the best! Its very rewarding!
That's an awesome article :) I think teaching and mentoring is part of being a senior software engineer and besides that, it is adding processes in place to help simplify and make life easier for developers and the management team.
Agreed! you're on point there, the company you work at definitely plays a massive role in this transition, if you don't have the structure set up then it won't be easy to move into that role
Great article. Only 5 points, but cover all critical aspects.
Thank you :D