So what is the best technical interview in my view? That honour goes to two game developers Avalanche Studios and Dovetail Games (others may also use similar test but these are the 2 I know of) whose tests go something along the lines of:
- Send candidate code for a retro game clone, e.g. Pacman or Asteroids.
- Tell them to get it running on their machine and fix any bugs encountered.
- a) If interested in creative coding: improve the game in any way they see fit, e.g. new features, enhanced movement, etc.
b) If more interested in core tech: Profile the code, then make it run 20% faster (10% is fairly easy, 20% shows skill, more than 20% shows real mastery)
- Send the result back
The reasons I find these tests superior to all the other technical tests I’ve heard of are as follows:
- The tests are pragmatic.
- The tests are real.
Does it matter if a programmer has memorised the technical standards for every programming language invented? Does it matter if a programmer can recite the Gang of Four or every bit trick under the sun? How is that programmer actually going to work with your code base? What will they add? Will they make a mess of things? Will they have the ability to work unguided? Will they respect the architecture and coding standard? Will they know when is the right time to throw the coding standard out of the window?
There is a place for developers who can fathom ideas never undertaken before but that is not the norm of development. Innovation rarely comes in bounding leaps, it usually comes from careful iteration on a theme. For those reasons, I find this type of pragmatic, real world approach to tests by far the most useful way of determining whether someone will be up to the technical challenge of working in an existing team.