Recently an old co-worker asked a group of us what advise we could give on courses available to assist some mid level developers working under him to level up and become senior developers.

This started me thinking, am I a senior developer and if I am, when did this occur? From a practical point of view this happened in my last permanent role, one of my follow developers was in a chat with my manager and commented that if he was a senior developer then I should be as well. I only found out 6 months later just as I was leaving the company.

This however does not feel like a suitable answer. For one thing I have previously held the title of CTO (in a company of 5), this does not make me a CTO.

I think the real answer to this is based on what does it mean to be a senior developer, what are the key traits that one possesses:

  • Ability to lead a team
  • Contributes to open source projects
  • Writes good code
  • Writes test
  • Is someone other people ask for their opinion

Of course there are developers out there that meet all of these requirements but still don’t qualify (in my mind at least) for the title senior developer.

For example it is easy to fall into a position leading a small team if all the more senior people leave, similarly you can become a core contributor on any number of open source projects simply by updating the documentation (I have friends who have done this).

Good code is subjective and the definition can change over time and depending on perspective. I will leave for another post the amount of extra effort badly written tests add to a project, write valuable tests is an art form and for language like ruby merely using code coverage figures to rate your test suit is not enough.

So this brings me to the final point, one which I think this is a better measure by far of what it means to be a senior developer. Someone that other people ask questions and want feedback from about their code when they are unsure. I still do this quite regularly, especially when I am working in a new language or am unsure of a given concept. These are the people that I consider to be true senior developers.

So as a final point I will leave a not of some of the ideas that put forward to help with would be senior developers:

  • Hack weekend/period - with a definite goal at the end that will benefit the company and all the developers have agreed to upfront.
  • Refactor, refactor, refactor - it will make you want to write better code so you can avoid it in the future.
  • Course/conference - this was considered to only be of marginal assistance.