Interviewing / candidate qualifying tips
-
That may or may not be feasible simply because: 1. They may not own a laptop 2. Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast). Although that does bring up a good point: I've asked ones who couldn't provide me with a code sample due to either #1 or #2 above to give me a sample of a personal project they worked on in their free time. To me, when they still *can't* provide a code sample--because they don't do any development in their free time--it tells me that they're not too serious about developing their skills. I may have 75,000 un-finished projects that I've started in my spare time, but at least there's something to be said for taking it upon myself to learn some new things and get some practice.
-
That may or may not be feasible simply because: 1. They may not own a laptop 2. Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast). Although that does bring up a good point: I've asked ones who couldn't provide me with a code sample due to either #1 or #2 above to give me a sample of a personal project they worked on in their free time. To me, when they still *can't* provide a code sample--because they don't do any development in their free time--it tells me that they're not too serious about developing their skills. I may have 75,000 un-finished projects that I've started in my spare time, but at least there's something to be said for taking it upon myself to learn some new things and get some practice.
Since I started programming for a living I have done far less of it in my free time than when it was a hobby. I want to get away from it when I am outside work these days. If your candidate does little else outside work but program I would be worried.
I hope you realise that hamsters are very creative when it comes to revenge. - Elaine
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
I would suggest asking a how would you handle question. I am not a C# person but for SQL you might ask about connection strings or error handling (within the C# to SQL environment). You never now, we hired a guy who talked a good talk but did not program well. (He also missed the first day of work). Good luck, djj
-
I would suggest asking a how would you handle question. I am not a C# person but for SQL you might ask about connection strings or error handling (within the C# to SQL environment). You never now, we hired a guy who talked a good talk but did not program well. (He also missed the first day of work). Good luck, djj
djj55 wrote:
we hired a guy who talked a good talk but did not program well. (He also missed the first day of work).
If I was in charge he would have missed the second, third etc. Not coming in on a first day is a sure way to get fired!
------------------------------------ No Good Deed Goes Unpunished Clare Boothe Luce
-
Since I started programming for a living I have done far less of it in my free time than when it was a hobby. I want to get away from it when I am outside work these days. If your candidate does little else outside work but program I would be worried.
I hope you realise that hamsters are very creative when it comes to revenge. - Elaine
I can appreciate that and I'd hardly expect (or want to hire) anyone to spend the majority of their free time programming. But I feel like any potential candidate should have at least ONE sample of their work. It could be a school project, or something they made solely for the purpose of having it in a portfolio. When I first graduated and started going on interviews, I actually built a small e-commerce site just so that I'd have something to show employers.
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
Pair programming is a good way to identify the capabilities. Give him a problem and ask him to code it in a specified time. Sit with him and work with him by discussing various methods to solve the problem. Allow him to come up with alternative solutions. This will help you to identify 1 - Ability to code in a reasonable time and ability to follow good coding standards. 2 - How he is coming up with solutions and how good are they. 3 - How good is he in taking suggestions and implementing it. 4 - Communication
Best wishes, Navaneeth
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
The other suggestions are good... You do want to see a sample of their code, if possible... But that only tests how well they can program in THAT LANGUAGE, not how well they program in general... I'm no expert in this (And I'm dreading the day when I'll be put in your shoes), but I'd care less about their actual code and more about their general knowledge... I like the old "What's the difference" questions, like: - What's the difference between a quick sort and a bubble sort? - Between a class and a structure? - Between passing parameters by reference or by value? - Between an array and a list? - Between an interface and an abstract class? I think anyone who can answer those, and sound like they actually understand the subject matter (As opposed to just quoting books), would probably be at least somewhat competent. One I've always wanted to throw in... "What runs faster? C# or VB.NET, and why?"
Proud to have finally moved to the A-Ark. Which one are you in? Author of Guardians of Xen (Sci-Fi/Fantasy novel)
-
The other suggestions are good... You do want to see a sample of their code, if possible... But that only tests how well they can program in THAT LANGUAGE, not how well they program in general... I'm no expert in this (And I'm dreading the day when I'll be put in your shoes), but I'd care less about their actual code and more about their general knowledge... I like the old "What's the difference" questions, like: - What's the difference between a quick sort and a bubble sort? - Between a class and a structure? - Between passing parameters by reference or by value? - Between an array and a list? - Between an interface and an abstract class? I think anyone who can answer those, and sound like they actually understand the subject matter (As opposed to just quoting books), would probably be at least somewhat competent. One I've always wanted to throw in... "What runs faster? C# or VB.NET, and why?"
Proud to have finally moved to the A-Ark. Which one are you in? Author of Guardians of Xen (Sci-Fi/Fantasy novel)
I think that's a great list of questions to ask. The test I administered previously was something like this: 1. Write a class with the following properties xxx and has a method that returns yyyy 2. Write a stored procedure that updates xxxx table and takes yyy parameters And basically, more questions of that sort. But I like your approach of asking about concepts rather than just tasks.
-
A good conversation is an indicator of their ability. If they can talk with ease and confidence, and answer quickly and incisively any questions thrown at them then mark them up. Have a 'Long List' of phone interviewees, (no more than, say, 10-12) and from that conversation select 5-6 for F2F meeting. Whilst there, ask them what they would like to be doing in months and a years time, ask them how they learn new stuff, ask them if they are happy in a secondry position. If successful, would they be able to cope with a demanding schedule? Look at the past history, and why they are leaving/have left the previous employer. If all well, have a short list of your two favourite candidates, and select the one you will feel happier working with, after all it is important you are happy too. If the better qualified one comes accross as a bit stiff and formal, not to easy to be sociable with, choose the slightly less able if he/she is closer to your social type, after all you will be with this person many hours a day. Otherwise just employ the one with the biggest breas.....CENSORED...
------------------------------------ No Good Deed Goes Unpunished Clare Boothe Luce
Dalek Dave wrote:
Otherwise just employ the one with the biggest breas.....CENSORED...
You're advising him to hire Mr Biggie Manboob?!?
10110011001111101010101000001000001101001010001010100000100000101000001000111100010110001011001011
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
Do you really have to go through the recruiters? I bet you could ask around and find someone who is looking for job *and* is recommended by someone you trust.
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
Sit the person down at a computer with Visual Studio 2008 (or 2005) and an available sql server somewhere. Ask the candidate to create a simple one page ASP.Net application that has a list of authors used to filter a grid of titles from the pubs database. If they can program the simple one page application then they are probably good. Anyone can talk the talk but that doesn't mean they can program in real life.
I didn't get any requirements for the signature
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
I was in the same boat you are, a year ago. What I found as reasonable is to walk them through a problem, not a hard one, but an unusual one, and watch how they look at it. I generally look at: -- the quality of the questions they ask how quick they catch on to new ideas I feed them how well they generalize from answers I give them -- But figure out a couple of questions before hand, and be prepared to spend time with it, I have not had an interview with a reasonable candidate in the last year that lasted less than 75-90 minutes. The problem I present (which was used on me) is this: You are given a 2.4 GHz machine with 32 bit XP, 2 GB ram and roughly 400GB free disk space. The US phone system generates more than 2^30 calls a day, so you have a stream of call records coming at you, roughly 10-20k records / second. The records have the 10 digit phone numbers for the source and the sink of the call, as well as start time and duration. You are a carrier, you have a list of subscribers, and you want to go build a list of 'friends and family' of the people on your list. How would you solve it? -------- Some times people will just say 'put the number of interest in a hashtable and for each record, check to see if it contains the from and to numbers' This is a good way from a maintenance standpoint, assuming the string hash is fast enough. But this does you no good since you can't watch them solve it. The point is not that they have to know all this stuff, but to see if they are capable of learning, and if they care to. The less they know about this, the more info the questions can give you. -------- Hints/things to look at -- Is 2 GB ram enough to build an in memory array of bit bools for each possible phone number? DB queries probably won't be fast enough, but how would you check? Can you use the structure of the phone number to help you? Array[1000] of bools indexed by area code, would it help? Do they think they can get away with a single prefix array? Do they think they have to have 1000 prefix arrays? How will they get from the area code array to prefix array? Maybe area code array is not bool after all? Would array of objects/null work instead? If they see how to do that, can they generalize it to prefix to suffix? Than walk them through to the hashtable solution. Are they having 'AHA!' moments, or couldn't they care less about solving the problem and learning? A priori knowledge is good, but not what I try to look for, capabily to handle novel problems is.
-
The other suggestions are good... You do want to see a sample of their code, if possible... But that only tests how well they can program in THAT LANGUAGE, not how well they program in general... I'm no expert in this (And I'm dreading the day when I'll be put in your shoes), but I'd care less about their actual code and more about their general knowledge... I like the old "What's the difference" questions, like: - What's the difference between a quick sort and a bubble sort? - Between a class and a structure? - Between passing parameters by reference or by value? - Between an array and a list? - Between an interface and an abstract class? I think anyone who can answer those, and sound like they actually understand the subject matter (As opposed to just quoting books), would probably be at least somewhat competent. One I've always wanted to throw in... "What runs faster? C# or VB.NET, and why?"
Proud to have finally moved to the A-Ark. Which one are you in? Author of Guardians of Xen (Sci-Fi/Fantasy novel)
Ian Shlasko wrote:
at least somewhat competent
Even students can answer those questions, but I haven't met one of them who knew what
x&(x-1)
is useful for - in fact most of them didn't even know what "that funny &" does. They can't actually program, they just write code. (but there are exceptions to that rule, as always) -
That may or may not be feasible simply because: 1. They may not own a laptop 2. Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast). Although that does bring up a good point: I've asked ones who couldn't provide me with a code sample due to either #1 or #2 above to give me a sample of a personal project they worked on in their free time. To me, when they still *can't* provide a code sample--because they don't do any development in their free time--it tells me that they're not too serious about developing their skills. I may have 75,000 un-finished projects that I've started in my spare time, but at least there's something to be said for taking it upon myself to learn some new things and get some practice.
kryzchek wrote:
They may not own a laptop
They're not serious about being a programmer. Don't hire them.
kryzchek wrote:
Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast).
Not a valid assumption. I have a laptop, and I have a development environment on it that includes all of my tools and whatever source code *of mine* I might be working on. That's what I meant by "development environment". Providing a code sample without being able to show that it actually works and that I know what it does is a waste of everyone's time. I took my laptop to every job interview with several of my codeproject articles ready to demonstrate, as well as some of the web sites I've built. Nobody wanted to see them, but I was ready if they did.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Do you really have to go through the recruiters? I bet you could ask around and find someone who is looking for job *and* is recommended by someone you trust.
We tried last year to find and hire a person on our own, with no success. We already have this recruiter on retainer for some other head-hunting, so my boss is adamant that we use him to find the developer as well. In my area there is a surprising lack of developers based on the current demand.
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
I am also conduction a bunch of interviews in January. I am setting up a development environment at my work with the code, the source control and internet access. The candidate will be invited for 4 hours of interview and will get a office (like the rest of the employees). He will be free to go to the refrigerator and get drinks or go to the coffee machine and have coffee. This will also give me an idea of how well he meets and greets existing employees. I will give him 3 problems and about 3 hours to work on them. 1. Coding to spec. A spec will be handed to him and the candidate has to develop an application per the given spec. 2. Fixing an issue in existing code base. I will give the candidate an issue and he has the resolve it. This will give me an idea of his problem solving skills. 3. Coding in ambiguity. A simple problem statement will be given to him and the candidate will have to implement in the technology of his choice. The problem statement will be generic and the candidate will be free to ask questions (via IM, emails, Phone). This is where I have found most programmers to fail. His level of skills can be ascertained by the way he solves/approaches the 3 problems. A junior level programmer can do task 1 without any problems but will have problems with 2 and 3. A mid-level programmer will have problems with 3 but will be able to do 1 and 2. A senior programmer should be able to do 1, 2 and 3. Of course, in the entire process the candidate will have to interact with me. Also, both I and the candidate will be able to ascertain how well he can fit in the company. He will see the actual codebase and work with real people.
-
If they don't have a laptop a CD/USB drive can serve as a code transport device.
3x12=36 2x12=24 1x12=12 0x12=18
-
kryzchek wrote:
They may not own a laptop
They're not serious about being a programmer. Don't hire them.
kryzchek wrote:
Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast).
Not a valid assumption. I have a laptop, and I have a development environment on it that includes all of my tools and whatever source code *of mine* I might be working on. That's what I meant by "development environment". Providing a code sample without being able to show that it actually works and that I know what it does is a waste of everyone's time. I took my laptop to every job interview with several of my codeproject articles ready to demonstrate, as well as some of the web sites I've built. Nobody wanted to see them, but I was ready if they did.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
kryzchek wrote:
They may not own a laptop
They're not serious about being a programmer. Don't hire them.
kryzchek wrote:
Their development work may belong to their previous employer, so it's proprietary, private or not even in their personal possession (say that 3 times, fast).
Not a valid assumption. I have a laptop, and I have a development environment on it that includes all of my tools and whatever source code *of mine* I might be working on. That's what I meant by "development environment". Providing a code sample without being able to show that it actually works and that I know what it does is a waste of everyone's time. I took my laptop to every job interview with several of my codeproject articles ready to demonstrate, as well as some of the web sites I've built. Nobody wanted to see them, but I was ready if they did.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001John Simmons / outlaw programmer wrote:
They're not serious about being a programmer. Don't hire them.
It's unlikely that I would have a laptop if I did not get the company to pay for it for remote debugging purposes. And I would definitly call my self a serious programmer. I have churned out somewhere between 500K to 750K new C++ (mostly MFC but now Qt) lines in the past 12.5 years..
John
-
My company has decided that after 4 years of me doing 100% of the IT work, we need another developer. This person will work directly under my supervision and be tasked with maintaining a C# distributed WinForms app as well as some ASP.NET work. We've hired a headhunter to pre-qualify candidates and set up phone & in-person interviews. And this is the point where my inexperience with hiring really comes to light. I'm getting a little better at the face-to-face and phone interviews, but I'm still not sure how to qualify a person skill-wise. It seems like right now all I'm doing is saying things like "Do you know C#? Have you use SQL Server?" And naturally the candidate tells me that yes, they have. Can anyone give me some tips on how to gauge just HOW experienced or skilled someone might be in the areas that I require? I've asked for code samples, but some candidates can't provide that as it is most likely property of their previous employer. And I'm not sure that 1 class file will really give me a good reference point as to their skill level when taken out of the context of a project as a whole. I've also considered giving a small test, but I'm not too sure how long or difficult I should make it. Suggestions or comments from those that have experience with hiring and interviewing would be most appreciated at this point.
All the head hunters who've contacted me have passed along a link to an online skills assessment that the employer has requested. They're awful, but fairly painless. You should probably do that.