<commit_before>---
layout: post
title: What makes a Senior Developer
---

#What makes a _"Senior"_ Developer
-----------------------------------------

I remember, as a younger man, asking my on-prem guru of the day, "when will I be a _senior_ developer?".    I had no idea what answer I expected in response.  Perhaps it would be on "time served"? After 2 years? Maybe 5 years? 10? Perhaps when I had more hair sprouting from my nose and ears than on my head?

What if years of experience was a useless metric? 50 years of packing bags doesn't qualify me to be a store manager after all.  Maybe it was once I had learned how certain classes in .Net worked? Or when I had a good grasp of how the CLR works?

There are various other metrics I suppose you could look at:

* Stackoverflow score?
* Number of people that have used my software?
* Amount of money made / costs reduced as a result of my work?
* etc.

I hadn't expected his answer to simply be "you will know".

##Experience

I've been a Senior Developer for several years now, and often as a Lead/Principal Developer on small teams, so I've had plenty of opportunity to interview and vet potential candidates for my expanding teams.

Regularly a candidate's CV has expressed many years of development, often 10 or more as a senior developer within a 25 year career.  Unfortunately, in almost every case I've come across so far, that time seems to have been ill-served.  These candidates have brought years of ingrained bad habits and since defunct patterns and practices.  They're not always directly _to blame_, it could simply be a case of project availability, only having the opportunity to work on simple, repetitive requirements. 

I've been in these situations myself.  You just need the motivation to further your personal development in your own time!  If you are not able or willing to change your role, your job, your responsibilities, your workflow, then you have to put in the extra effort to stay current!

_I'm not saying that **all** developers with a large number of years are antiquated or sans value.  Simply, to date, I have met only **one**._

##Knowledge

This, in my opinion, is a much better measure of seniority.  I can honestly say that I have worked with Juniors that within a couple of months of tuition, have far surpassed the skill and value of so-called _senior_ developers despite vastly superior years in the field.  Years of writing bad code makes a developer considerably worse than an inexperienced junior because that is years of "knowledge" a developer needs to _unlearn_.

But that only leads to the next issue.  How do you _measure_ knowledge?

##Metrics<commit_msg>Update 2015-04-13-Senior.md<commit_after>---
layout: post
title: What makes a Senior Developer
---

I remember, as a younger man, asking my on-prem guru of the day, "when will I be a _senior_ developer?".    I had no idea what answer I expected in response.  Perhaps it would be on "time served"? After 2 years? Maybe 5 years? 10? Perhaps when I had more hair sprouting from my nose and ears than on my head?

What if years of experience was a useless metric? 50 years of packing bags doesn't qualify me to be a store manager after all.  Maybe it was once I had learned how certain classes in .Net worked? Or when I had a good grasp of how the CLR works?

There are various other metrics I suppose you could look at:

* Stackoverflow score?
* Number of people that have used my software?
* Amount of money made / costs reduced as a result of my work?
* etc.

I hadn't expected his answer to simply be "you will know".

##Experience

I've been a Senior Developer for several years now, and often as a Lead/Principal Developer on small teams, so I've had plenty of opportunity to interview and vet potential candidates for my expanding teams.

Regularly a candidate's CV has expressed many years of development, often 10 or more as a senior developer within a 25 year career.  Unfortunately, in almost every case I've come across so far, that time seems to have been ill-served.  These candidates have brought years of ingrained bad habits and since defunct patterns and practices.  They're not always directly _to blame_, it could simply be a case of project availability, only having the opportunity to work on simple, repetitive requirements. 

I've been in these situations myself.  You just need the motivation to further your personal development in your own time!  If you are not able or willing to change your role, your job, your responsibilities, your workflow, then you have to put in the extra effort to stay current!

_I'm not saying that **all** developers with a large number of years are antiquated or sans value.  Simply, to date, I have met only **one**._

##Knowledge

This, in my opinion, is a much better measure of seniority.  I can honestly say that I have worked with Juniors that within a couple of months of tuition, have far surpassed the skill and value of so-called _senior_ developers despite vastly superior years in the field.  Years of writing bad code makes a developer considerably worse than an inexperienced junior because that is years of "knowledge" a developer needs to _unlearn_.

But that only leads to the next issue.  How do you _measure_ knowledge?

##Metrics
{'fraction_non_alphanumeric': 0.0489749430523918, 'fraction_numerical': 0.005315110098709187, 'mean_word_length': 3.9801512287334595, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 7, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4596249', 'n_tokens_mistral': 1334, 'n_tokens_neox': 1249, 'n_words': 883}