*phew*
We've just finished interviewing for the Junior Programmer position at VSoft Technologies. The position was geared towards a current university student in their final year, or a recent graduate and they will be working on the future development of FinalBuilder.
We advertised the job on SEEK - we have had quite a lot of responses and the advertising experience was quite good, I think we'll use SEEK again. But the disappointing thing has been the quality of the applicants. Unfortunately we've had to automatically exclude all candidates from interstate (or overseas), as it's just too hard and too risky for us to bring people to Canberra. Also, Canberra has a fairly small population - so finding talented people is always going to be challenging. There are two universities in Canberra - the Australian National University (ANU) and the University of Canberra (UC). Both offer B.E. in software and UC also offers Bachelor of Information Technology and a few other IT related qualifications. There are also other learning institutions here too, the Canberra Institute of Technology springs to mind.... there's probably others too.
So, we decided to interview seven people - one person got another job before we interviewed them, so we ended up with six... a pretty good number actually.
The interview questions.
Everyone seems to go fairly well with verbal questions - eg. what experience have you had, what is your favourite programming language, etc. What really sorts the men-from-the-boys are the little practicals we gave the candidates:
1. Read some code
We gave the candidate a print out of a very simple routine. I'm not going to tell you what it is, but suffice to say it was only about five lines long. We specifically chose some Delphi code as we wanted to assess the skills of the candidate to be able to read code in a different programming language than they were used to. The results were a little surprising (if not disturbing)... Vincent and I started thinking that maybe the routine was a bit difficult (maybe it should only be 2 lines long?!?!).
2. Write some code
We gave the candidates a very simple class diagram. It contained two classes, one derived from the other and a couple of methods and attributes. We asked them to write the code based on the class diagram in Notepad. This was a good question, actually a very good question :)
3. Customer liaison
We deal with a lot of customers. We have newsgroups as well as handling support and pre-sales issues via email. We need to know how someone would handle this task - we gave the candidates a real email which we received from a customer and asked them to write their response. This question was generally handled fairly well as we were able to judge their liaison skills, politeness, and just how they handle this type of thing in general.
4. Research skills
The candidates were asked some questions that they wouldn't know the answer to, and they had to use a web browser to find the answers. I think we'll probably refine the research question a little next time we interview, but it was certainly a good question to ask. Some candidates took a minute or two, others were asked to stop after about 10 minutes. At least with the people who took longer I was able to read a few pages of Crossing the Chasm - so the time was not wasted :)
5. Using FinalBuilder
This test was designed to assess the both the candidates' problem solving skills, as well as assess whether they had downloaded FinalBuilder in their own time to study the product before the interview. It also allowed us to do a bit of usability testing - we watched as the candidates' followed a list of instructions to create a very simple build process in FinalBuilder :) It was very interesting, to say the least. A side effect was that we were also able to assess the candidates ability to follow instructions - this was a good question indeed.
The result.
There was one candidate who generally stood out above the rest - we have asked him to join the FinalBuilder development team, and he is starting tomorrow. Keep an eye out for his blog. Of the other candidates, there were two who were very high on the list. We wish all the candidates who applied for this job success for their future.
Some closing notes.
Some candidates took the time to read our website before they arrived for the interview. Some even had downloaded FinalBuilder and had a play with it. This does count for a lot in our books - why someone wouldn't spend a little time finding out about the company they might be working for is a little surprising. Also, the technical skills of the candidates did seem a little lacking - we do understand that the job is for a Junior developer, but a good understanding of basic OO principles and the ability to write simple code shouldn't be too much to ask for, is it?