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!)
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
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.
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: