5 Qualities of Great Senior Software Engineers That I Love

A graphic image of number five on an old terminal screen

This post is an opinion piece, and it’s not data-driven. That said, I’ve worked on a lot of teams and I’ve seen how team members and thus productivity react to the different voices of authority in different circumstances. So it’s at best anecdotal evidence.

One more caveat: Advanced technical expertise is a given here. It doesn't make the list because this would be a person who is a pillar on a technical team, therefore they must be able to deeply understand the stack that is being used to deliver features.

#1: Make Teammates Feel Comfortable Submitting Work

Ensuring that the team feels comfortable to make submissions means they are more likely to self-improve on that topic and be more independent in their solution generation. This doesn’t mean sacrificing quality, it just means that people should be able to create work, prove that it works, prove that it conforms to standards set by the team, prove that it fits with existing patterns, and that should be good enough. Making people feel like their contributions are valuable early is a great way to increase their output, and make them take more ownership over their contributions.

#2: Be Excited to Share Knowledge

On some teams deadlines are extremely tight, sprint or PI workloads are not feasibly distributed, and sometimes a team member may have issues picking up the tech or feature delivery patterns that are present in the team. Even in these scenarios, it’s the work of a great senior to be ready to take some slice of their time and be prepared to dedicate that to sharing their understanding of the tech, and the domain of responsibility. This usually comes in the form of 1:1 meetings, team solution-generating meetings, or pair programming sessions.

#3: Understand Task Workloads And Be Vocal Early

During the sprint planning it’s very easy to ‘toss a number out’ that feels right when deciding how much effort a given Story / Task will have. But at least half the time this doesn’t work out in my experience.

To estimate correctly, a team member needs to have:

  1. A deep understanding of the complexity of the application

  2. The feature under development

  3. The testability of the feature under development (this means the dependencies a given feature has from elsewhere in the project, and how complex a given test setup is depending on the extensiveness of the test requirements)

  4. The infrastructure elements on which the new feature will depend or run on.

Very simple changes can sometimes take many hours depending on the above factors, and a great senior will be able to identify and justify this. This is good for both the members getting those tasks, as well as leadership because it will become very obvious there is a problem when a simple task is taking 2 days of effort due to implementation complexities. Making it known during the planning shines a light on application areas that are legitimate concerns for everyone involved.

#4: Domain knowledge

This feels like a given but I’ve seen a lot of good seniors skip on this. They love the tech and are black magic sorcerers with their tech stack. But when asked to understand the domain they are implementing that tech into they may not know much about it other than the bare minimum to be effective. While this is definitely fine, it’s a barrier to being great. A great senior understands not only how to implement a given feature but also why. This additional layer of understanding makes it so that a richer understanding of the app holistically (I hate that word but it just fits here) is possible, and better feedback that is more useful for the team-members and the company is more likely.

#5 The Managing of Managers

Last but not least, a good senior must know how to manage their managers. This does not mean manipulation or trying to assert authority over them. It means understanding the needs and communication style of their specific managers, and understanding how to paint a picture of what’s going on with the team as accurately as possible to the leadership. It’s possible that management is involved in meetings all day and not available to really know what’s happening ‘on the ground’. The goal is to make the manager have a shared experience and empathy with the team, so that they go to bat with higher management and feel motivated to procure the time and resources needed by the team.

Conclusion

This is by no means the perfect and most accurate list, But it’s the top 5 things I intuitively think have the most impact. I love feeling comfortable submitting my work and not feeling criminally negligent after making mistakes. I love feeling protected by my superiors like my work and efforts were not only just acknowledged but truly given space and time to be built into the things they were intended to be. I love to have experts readily available who are excited to share with me the information that makes them so great in my eyes. This has made a huge impact on me each time I have had it, and I strive to be it now.

P.S. Did I pick the number 5 because of the movie short circuit? Yes.

Next
Next

What is a GAN?