Who's a senior developer?

Something at work today prompted me to get thinking about what people generally mean when they say they are/someone is a senior developer.

There are some things which are a given - long-term technical experience, fairly good knowledge of complex languages and codebases, past experience working on products and so on.

But in my opinion, there are a fair number of things which we don’t really talk about but are important skills a “senior” developer must possess to actually deserve that title. Here’s a short list that I came up with:

  • A senior developer puts code review as their top-priority. Being senior means that they make it a point to unblock others on the team, and teach them things along the way.
  • They are objective, kind and detailed in their reviews. They don’t assume every developer knows everything about everything (be it regexes or cronjobs or database queries or language libraries or localization practices etc).
  • They invite people on the team to review their own patches, even if the rest of the team doesn’t have experience like theirs. By offering fellow teammates to look at their code, they are giving them a chance to learn by example (which is the best way to learn anything, trust me) and they aren’t assuming that their code is superior to everyone else’s.
  • They take the time to explain stuff to someone who’s stuck, instead of going in and doing it for them because that will cost them less time. Also, they take the time to explain in detail the relevant technical details about a product to the non-technical people on the team.
  • They are communicative. They don’t go off and build a product in a silo because that will save the time and bother, but rather come up with an implementation plan/a database schema/an architecture in collaboration with the other team members.
  • A senior developer has respect for the team processes. This could be something as simple as showing up in all the meetings on time or taking the time to create tickets and go through the estimation/prioritization process properly without jumping to development step.

A senior developer on a team has the capacity to act as a mentor for their team and be a catalyst for the success and growth of a team. Strive to be that person.