What I look for in developer candidates

I just sent this to our recruiter (our only recruiter, so please don’t bother if you’re not him), and it occurred to me that it might make an interesting mini-post, so here it is, copied and pasted from my email.

The main thing we look for is strong core programming skills, ideally in C# but will also consider Java and C++ programmers. The interview will include technical questions about Object Oriented programming and whichever skills the candidate claims to have.

Web development is the second most important thing for us these days. Again, there will be questions about web applications, ASP.NET fundamentals and so on.

The third thing we expect is database skills, and I’ll ask questions about database design and SQL. I don’t want people who only know ORM abstraction layers.

Obviously the level to which the questions go varies according to the level we’re interviewing for, but the basics of all three would be covered for all levels.

My big bugbear is when I ask a question which the candidate’s CV implies they should know the answer to, but it turns out they don’t.

Any code questions are asked and answered on the whiteboard, so individuals who rely totally on IntelliSense are in trouble.

If you’re looking for a developer role with a great company in Windsor, UK, and the above doesn’t put you off, please get in touch!

Comments

  1. I’m surprised that “A selection of questions from the dummies guide to technical interview questions” isn’t in there somewhere…

    I often find that those types of interview questions aren’t challenging enough for candidates… things like “Describe the different between value and reference types”… typically a candidate will revise the hell out of the answers, but really misunderstand what it actually means and why differences exist.

    Challenging questions like “What are some pitfalls with the following code?”, or “Give a high level overview of the IIS processing pipeline” I find are much more applicable to the type of candidate I would be looking for… at least it would be a technical demonstration of their ability.

    • You’ve made some startling assumptions about the specific questions I ask when I gave no details whatsoever of what they actually were.

      • LOL, it wasn’t a negative comment, it was meant entirely jovially. From my previous experiences of being an interviewee, most of the questions that I have been asked have been repetitions of the same stuff.

        It’s actually quite refreshing to be challenged about specific technologies and techniques. No assumptions were made 😉

        • Fair enough. Guess I leapt to my own conclusion, sorry.

          For the record, “the difference between a reference and value type” is one of the questions we use right at the start of the phone interview to weed out the time-wasters. We also ask about garbage collection, and I was once told that it’s bad practice.

          The full interview questions are a bit tougher, and yes, I ask about the IIS/ASP.NET pipeline and the life-cycle of a request. But it’s more about how confidently people answer the questions, and whether they’re honest when they don’t know something, than anything else.

      • Funnily enough, I’ve got some upcoming interviews to manage, so it’s good to see other’s takes on it.

        I guess finding the balance between identifying their core programming skills, their understanding of what the platform actually is, and the desired technologies that would be beneficial for a candidate is the tricky part?

  2. Neville Scheevel says:

    19th Century British mathematician, logician and philosopher, Alfred North Whitehead wrote;

    “…by relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect, increases the mental power of the race.”

    I’m curious;
    – Why would you want candidates “burdened” with syntactical minutia that Intellisense makes redundant?
    – Do you make your devs code in notepad?
    – Have austerity measures impacted the number of Visual Studio licenses?
    – Do you hire coders or purists?
    – Would you expect an architect to burden himself with syntactical memorization and lose sight of the big picture?

    It seems to me that only accepting candidates that are uber-nerds severely limits your labor pool and the breadth of the team. But then again I hate syntax so maybe I’m just biased. -Nev

  3. Please, everyone, before posting negative comments, check that you have actually read the post and are responding to things that are in it, and not just in your head.

  4. Personally I think its an open ended description to allow candidates to come prepared for questions in areas 1, 2 and 3. I think its a pragmatic approach to interviews

    Id like to know how you screen cvs though – still using the cv interface for a first stage?

  5. Neville Scheevel says:

    Oh sorry, my bad, when you wrote; “individuals who rely totally on IntelliSense are in trouble.” I didn’t realize you meant everything except LINQ. Because, you know, everybody should have memorized the syntax of the frameworks’s other 39,509 types, 384,300 methods and 240,070 fields.

  6. I do love coding and do suffer from the imposter complex. Mark will know from my endless stream of Simple.Data tweets and questions how much I over do learning and exploring the limits of a new to me technology.

    I’ve not had a full proper OO education and they’re huge gaps in my knowledge, mainly the behind the scenes stuff .NET does as I only seriously started using it at 3.5 (I have no clue how garbage collection works behind the scenes but know enough to not get into serious trouble). I also have no clue what a C++ pointer is or how to use it, I can’t do a bubble sort algorith, I don’t know every bit of .NET syntax BUT I love coding and hitting a problem means I will learn things that are important when I need them.

    But I hope in your interviews you do account for the persons age as well. I’ve only been coding since 14 (around 9 years now) and still have a lot to cover. It also has to be the attitude too, if you ask me something I don’t know, I’ll admit it and ask you to explain it/or who to ask/what to read so I can learn.

    • The thing I’m looking for the most is the enthusiasm, or passion, and the people who have that will answer the questions a certain way. If somebody doesn’t know a couple of things, that’s fine, as long as their CV didn’t say they were an “expert” on those things.

  7. deedubbleyoo says:

    First up, I am as from a techie as can be so please forgive any inaccuracies. From my perspective I 100% agree with Mark re the Intellisense remark.

    The tools that we use should take away the effort, leaving us free to concentrate on building cool stuff *however*, should a team lose it’s tools for whatever reason – whether that’s Intellisense, CI etc. then a team will be far more productive if its team members know – and can demonstrate – good practice at the fundamental level, whether that be syntax, process or team dynamics.

    I believe it shows a candidate who has a very firm foundation to build upon – which is the salient point when interviewing isn’t it?

  8. Neville, I don’t think candidates need to have memorised the entire syntax, you can provide a broadly correct syntax on a whiteboard even if you can’t remember an exact enum name or value.

    On the other hand if you have no idea what you are doing and rely on Intellisense to suggest possible methods then you’ll be caught out at the whiteboard.

    With experience comes a sense of what to do even if you aren’t great on minutiae.

    Its the difference between using intellisense and relying on it.

    Richard

  9. Maybe people are getting the wrong idea because I also say “IntelliSense is for wimps” and such in my presentations. To those people I say: “IT’S A BLOODY JOKE.” IntelliSense is great. The little green squiggles ReSharper throws in to point out that a field can be readonly, or a method can be made static, are great.

    People who claim to have 8 years experience of C# or Java, but can’t tell you whether you can assign an instance of a base class to a variable of a derived type or not, or how to try to cast an object to a type, without having Visual Studio there to help them, are not the people I’m looking for, and I make no apologies for that.

    • Ha! Ok, some basic language constructs are ok to know without intelliSense because of the habit of working with the language and etched in your mind naturally. I was never worried to save code upon the minds, understand what happens and go ahead.

  10. David Steele says:

    Good point, Mark. I can’t decide which annoys me the most. Is it candidates who fill their CV with lists of technologies they know little to nothing about. Or should it be recruiters who want to charge you thousands of pounds for sending you many of the aforementioned time wasters.

    A few years ago I interviewed a chap who had a 25 page CV (on paper the bloke was practically omniscient) full of details of numerous certifications from Oracle, Microsoft and Cisco. I had already learned to test early to avoid the bullshit but this guy was most put out when he didn’t make it into the interview proper. One hour in a room with visual studio, MSDN and Google, plus the connection string I included as part of the test and he still hadn’t managed to extract anything from a database.

    I hate recruiting, it shouldn’t be this hard. If you are looking for a job please stop the bullshit for all of our sakes.

  11. …C# and OOP…the two things we look for are C# and OOP…and ASP.NET…the three things we look for are C#, OOP and ASP.NET….and SQL, four, the four things we look for are C#, OOP, ASP.NET and SQL…and an almost fanatical devotion to the Pope…

  12. Do you ask candidates to write their CVs in C# and parse it using the application mentioned on Dot Net Solutions web site some time ago? The idea looked really cool when I read about it a year ago.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: