What makes a senior developer
Trumpi asked the question What makes a senior developer? So I started to write a comment on it, and it ended up a little big for a comment, so I thought a blog post would be better.
Warning: This post is full of generalizations and is based on my narrow-sighted view of the world.
Before I answer the title question, I want to take a stab at a point in Trumpi’s post: why are they tossing so many “senior” devs’ CVs away? Arne commented on it and said it’s because developers want the high life quicker (easier?) now. I disagree with Arne—because I think it’s the companies that hire these junior/intermediate developers and push them into higher positions out of necessity (i.e., the company lacks seniors, so they promote intermediates or juniors to fill the gap). Then, they assume that because they’re a senior in Company X, they should be a senior elsewhere. I’ve seen this a lot in the “newer” development companies; the more established ones seem to avoid this issue.
Not to say that I haven’t met developers who want the high life quickly—however, this seems to stem from an educational background. Developers who are self-trained, attend training colleges, or study at tech schools don’t seem to be so driven by the fast lane. The higher the education (honor students, in particular), the more likely they are to be affected by the “high life quickly” syndrome.
To the question at hand: What makes a senior developer? That’s a tough question because it’s more about the environment and culture of the company than the person themselves. If your culture is more formal (suit and tie), seniority could be based more on qualifications; in a more informal environment, it might rely more on experience. There is no wrong or right here.
My view of a senior is someone who meets five key criteria: Knowledge, Proven, Sharing, Passionate, and Humility.
- Knowledge: Has deep knowledge of a technology or technologies (how it was obtained is irrelevant to me).
- Proven: Has paid their “school fees”—meaning they’ve done real (hard) work to prove they deserve to be called senior.
- Sharing: Is able to share knowledge. This is important because a senior who can’t share knowledge isn’t worth it. Now, there’s the issue of personality—some developers just don’t have one. I’m not saying seniors need to be great speakers like Scott Hanselman or salespeople. If they’re introverted and can only share with people they know at work, that’s just as valid as being a great speaker or blogger.
- Passionate: They must be passionate. As a senior, being called a geek or nerd is a badge of honor that should be embraced.
- Humility: Lastly, and most importantly, all of those traits should culminate in a senior admitting, “I don’t know everything… but I’m willing to learn.”
The senior developers I’ve worked with have come from incredibly varied backgrounds and are on many different paths—but they all meet these five criteria.