I am often challenged to explain what makes a good senior software engineer and how does someone progress to this level. Does the number of years count? What about knowing the latest technology buzzwords? The topic has been debated on many forums and many in the industry have shared their viewpoints on a topic that is quite broad.
Delivering value
I believe that a senior engineer can find the path of least resistance to delivering value to the customer. If the customer is not satisfied, the engineer should not be happy. A key requirement for a senior engineer is someone that keeps learning and improving their craft. To do this, a senior engineer would understand that achieving simplicity is the best way to deliver value to the customer. Keeping it simple is challenging with the amount of information and new technology continuously being developed. Sticking to the fundamentals of computer science principles helps in achieving this. Key factors Some of the aspects that in my experience in recruiting have looked at are not groundbreaking but concentrates on using the understanding of software engineering. This would include the following:
- Understand the challenges of a scaling platform and how to solve this.
- Understand the boundaries of their technology stack and how to utilise it to deliver. They are keen to mentor by staying connected to other engineers.
- Understand the patterns of software engineering and anti-patterns. They recognize when to apply these to the situation by making space to explore.
- Most importantly they should share the values of the organisation and be a fit for the culture.
How do we test for this?
To test for this, a combination of practical and behavioural approaches would be required. The process would involve pre-screening, a practical test, live coding or whiteboarding and a hiring manager interview focused on culture. An example of questions that would be used to ascertain culture could be:
- Could you tell me about a time you received negative feedback from a peer?
- How would past coworkers best describe how you work?
- Could you tell us about a time you took ownership for a feature that you did not originally engineer?
- Have you used the product and could you suggest any improvements?
The practical should focus on problem-solving and what is the engineer’s approach to solving the problem rather than the solution. Do they understand the approach to solving the problem and what are the pros and cons of each? Are they able to design and architect a system that is scalable through the technology selection?
Recruiting for or transitioning into a senior engineer is difficult. There are many aspects to becoming a senior engineer and many stagnate not understanding that it takes a mindset of learning continuously, balancing technology with delivery and finding a culture that inspires you to do your best.