You’re a senior engineer. Now what?

It’s a widespread practice to give sysadmins and developers that have accrued a few years of experience a new prefix to their job title: “senior”. So they suddenly become Senior System Administrator, Senior Ruby Developer and so on.

So, senior something. What does that even mean?

The very senior John Allspaw shared his thoughts on this topic a few months ago on his blog under the title “On Being A Senior Engineer“.

John cites Theo Schlossnagle who asked what might come next:

After five more years will you not have accrued more invaluable experience? What then? “Super engineer”? Five more years? “Super-duper engineer.”

When you get promoted to a “senior”, you haven’t actually become someone else over night. It’s not an event of metamorphosis, neither of enlightenment. John chose to find another adjective that has more meaning:

I expect a “senior” engineer to be a mature engineer.

And he lists these main characteristics of a mature engineer:

  • Mature engineers seek out constructive criticism of their designs.
  • Mature engineers understand the non-technical areas of how they are perceived.
  • Mature engineers do not shy away from making estimates, and are always trying to get better at it.
  • Mature engineers have an innate sense of anticipation, even if they don’t know they do.
  • Mature engineers understand that not all of their projects are filled with rockstar-on-stage work.
  • Mature engineers lift the skills and expertise of those around them.
  • Mature engineers make their trade-offs explicit when making judgements and decisions.
  • Mature engineers don’t practice CYAE (“Cover Your Ass Engineering”)
  • Mature engineers are empathetic.
  • They don’t make empty complaints.
  • Mature engineers are aware of cognitive biases.

He explains each characteristic in depth, so don’t miss reading his post!

So, can you tick all the boxes of the mature engineer for the seniors in your team, for yourself? Yes? Then there’s one last aspect.

After listing “The Ten Commandments of Egoless Programming”, John adds another essential requirement that I was missing in quite a few senior sysadmins I have been working with over time:

Dirty secret: mature engineers know the importance of (sometimes irrational) feelings people have. (gasp!)

When you’d like to become a senior, or better, a mature engineer, then first and foremost become a mature person.