After a long break from blogging due to arrival and care of a couple of small children, I'm now hoping to get back in the habit again, so here goes.
Our company Concept First has currently been advertising and interviewing for a job position, and I wanted to feedback to the candidates that we didn't invite in, what we were looking for, and suggestions on how to improve their CVs.
The classic developer article about interviewing is Joel's, which can be summarised as: find people who are 'Smart and Get Things Done'. I recommend reading this article, there is a lot of good advice in it, and we certainly look for the passion he discusses.
I grabbed the following screen shot, from a talk, which I think captures perfectly what we are looking for in a candidate:
The last point is important, especially when hiring very intelligent candidates. Clever people are great, but I have come across far too many examples of overly complicated software, especially architecture, which is only complex as a mental exercise for the programmer, not the problem domain. We need people who can get things done, and in as simple a way as possible.
In my experience keeping things simple is often the most challenging aspect of software development.
The other things that we particularly look for on CVs, are proof that the developer:
- Has an aptitude for coding, rather than a given skill set
- Can work with other people
- Can read as well as write code
- Can code to a given style, rather than their own personal style
- Understand and work with source control
The best thing a candidate can do to assure us of these things is to get involved in an open source project. It doesn't matter what language it is, what the source control is in ( I'd recommend github, codeplex or google code projects), but find a project that interests you, fix bugs, add features. This requires you to understand somebody else's code, that you fit in with their style, that you test your features, and overall that could can work as productive member of a group.