Click here to Skip to main content
16,016,306 members
Articles
(untagged)

How to Hire a Senior Developer?

Rate me:
Please Sign up or sign in to vote.
4.50/5 (3 votes)
30 May 2013CPOL5 min read 13.5K   8   3
How to hire a senior developer

Introduction

A little while ago, I wrote a post the fallacies of the tech recruitment process. While it is nice to point out what is wrong, I never actually provided the proper way to find out if a senior developer might be experienced enough and the right fit for your company, so this time I decided to put my money where my mouth is, and tell you how to hire a senior developer.

Why Hire a "Senior Developer" and What is a Senior Developer Exactly

In my opinion, a senior developer is a developer who manages to think out of the box, and who does not stop reasoning about finding a solution at technical boundaries. A senior developer is somebody who tries to provide business value for every single step he makes, while a junior is more or less focused on implementing the whole thing, a senior thinks about what he has to do and why he has to do it...

A senior can be tens to hundreds of times more productive business-value wise then a junior.

I have seen people getting the title "Senior developer", while they only have been developing for 3 to 5 years. While this is possible, I am assuming that most of them are not senior developers, but actually expert beginners.

Please allow me to clarify this with the Dreyfus model of skill acquisition (i.e., the different stages somebody goes through when acquiring a new skill). I will take the alternative interpretation of this model, because the original model is to abstract to make a point here. You have 5 distinct levels in this model. This section is blatantly copied from wikipedia:

1. Novice

  • "rigid adherence to taught rules or plans"
  • no exercise of "discretionary judgment"

2. Advanced beginner

  • limited "situational perception"
  • all aspects of work treated separately with equal importance

3. Competent

  • "coping with crowdedness" (multiple activities, accumulation of information)
  • some perception of actions in relation to goals
  • deliberate planning
  • formulates routines

4. Proficient

  • holistic view of situation
  • prioritizes importance of aspects
  • "perceives deviations from the normal pattern"
  • employs maxims for guidance, with meanings that adapt to the situation at hand

5. Expert

  • transcends reliance on rules, guidelines, and maxims
  • "intuitive grasp of situations based on deep, tacit understanding"
  • has "vision of what is possible"
  • uses "analytical approaches" in new situations or in case of problems

I tend to think that a lot of so-called-seniors are actually expert beginners: they know how to implement something technically, but they lack the experience to truely think about what they are doing, why they are doing it, and typically stop thinking at the technical level.

Now on to the hiring process...

How to Hire a "Senior" Guitar Player?

To explain the proper way to do this, let me explain it with another question: how would you hire an expert guitar player?

First of all, I would not ask him about notes and intervals, but I would ask about performances, favorite music pieces, biggest mistakes and achievements, and find out whether he is passionate about his job and has any "war stories" to share

Next, I would ask him to play a musical piece, but with a guitar that is out of tune, and I would hand him a piece of music that contains some oddities or errors somewhere.

  1. Beginner: you notice he does not pluck all the strings in a correct way, is unable to keep the tempo, etc
  2. Beginner expert: he will try to play the piece at the best possible "technical" way.
  3. Competent: he will probably tune the guitar first upon noticing it is out of tune.
  4. Proficient: he will probably tune the guitar, notice the piece contains some errors and oddities, and play them, but talk about them afterwards.
  5. Expert: he will probably tune the guitar, flatten out the errors and oddities from the piece during play

I think the point is quite clear here, is it not? While you might master something perfectly in a technical way, that does not make you an expert at all. Combine this with the fact that most people tend to think they are in the top 20 percentile when it comes to being smart, and you can start seeing parallels with a story called "The emperor's new clothes".

How to Hire a "Senior" Developer?

Start by asking him about his career, find out what his passions and achievements are, and where he made the biggest failures (and learned from it, I might hope).

Next, ask him for example, how he would handle a situation that is actually the wrong solution for the problem, let us give an example:

You say you need a website which would allow you to upload files from the local network, so you need a way to create an in-browser explorer that allows you to browse the network.

  1. Beginner: will ask you how the screen should look, and then probably starts talking about the implementation
  2. Beginner expert: will ask you how the screen should look, start talking about how Ajax might help here, etc.
  3. Competent: might be talking about things like delegating security in browsers over network drives is hard, etc.
  4. Proficient: will ask you why you exactly need all this functionality that it needs to be implemented in a certain way
  5. Expert: will question your authority and tell you to just use an upload button instead, as the business ROI will probably be way higher here

This also makes my point on productivity. Typically, going higher up in levels, does not mean a linear increase in productivity, but an exponential one.

Conclusion

There you have it: the proper way to hire a senior developer. So, let us hope that by the next time I have to do some kind interview for a senior developer, they will stop asking me about how the garbage collection works in detail, or what exactly a strategy pattern is, because:

"Quite frankly, my dear, I don't give a damn" Clark Gable - Gone with the wind

While those might be interesting, you are focusing on implementation details, not on providing a solution. Technical things can be Googled, but a higher level thinking is something only experience can give you.

Signing off,

Tom

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Founder Virtual Sales Lab
Belgium Belgium

Comments and Discussions

 
GeneralGreat Topic, Great Article Pin
Nick.Weller16-Dec-17 21:21
Nick.Weller16-Dec-17 21:21 
QuestionHiring a Senior Developer! Pin
Awenthomas8-Jan-16 0:49
Awenthomas8-Jan-16 0:49 
GeneralGreat conclusion Pin
Thentionedy15-Oct-14 1:06
Thentionedy15-Oct-14 1:06 
The conclusion is great and right up my ally. True you can google out the implementations (or parts of it), but you cannot hide your experience (your feel for a greater picture).
Keeping that in mind yes I agree that GC or pattern questions are inappropriate, but I must admit your proposition also does not suit:

Tom Janssens wrote:

You say you need a website which would allow you to upload files from the local network, so you need a way to create an in-browser explorer that allows you to browse the network.

I'm not sure in which way you present this question, but as it is now it seems to me that it is a trick question and those are really not appropriate. So much information is lacking here and if I where in this situation I would probably respond as a proficient. Also I really cannot imagine anyone responding like that what you expect.

Also yes the "senior" title is so ridiculously misused that it fails to have any meaning now days. What's worst is that I wouldn't even say that most of those so-called-seniors are "expert beginners". Nevertheless an efficient way that we use to filter out these participants is by providing a programming aptitude tests to them. Note that they do not measure the capability of a senior because they will find them to be rather trivial, but they do indicate whose the so-called-seniors are which result in saving both time and money.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.