I posted an job ad on Gamasutra about 4 days ago. It’s $350 for a single posting. I’ve only gotten 3 responses so far and my posting is the most appealing one there – work from home, high pay, small company. That’s pretty disappointing, I’m inclined to ask for a refund.
Of the 3 that applied, I’m now sending a pre-interview test. It’s based on how smart you are, rather than how much you can research stuff, and is a good indicator of programming ability.
1. Suppose you want to find the median of a list of a billion numbers. You have a cluster of networked computers at your disposal. You need to find the median as fast as possible. Describe a technique to do so.
2. I have a large set of data where each datum is a key/data pair. I need the operations insertion, deletion, lookup, and linear access and all these operations must be as fast as possible. How should I represent this data?
3. You are tasked with writing a logger class in a 3D game that does not already have a logger. It will be used for a wide range of features, writing everything from networked chat logs to graphics errors events to database lookup errors. You only have one day to write it. How would you architect this class? What features would you support?
4. You are planning to write a client/server game with an unattended server. Because the server is unattended, any crashes will mean the players cannot play for days. You have one week to implement whatever features / security you want to deal with this problem. What would you do?
In the past, I’d hire based on how badly I needed somebody, and how much I wanted to save money. So if the position really needed to get filled, and cheaply, I’d end up hiring a bad programmer for little money. This actually made me worse off – the bad programmer would waste my time (costing money) and accomplish nothing (costing money) and the job wouldnt’ get done (so now I needed somebody even more).
Now I’m hiring solely based on “Is this someone I would like to work with, and who would provide value for the money?” I’d rather pay 4X more for someone 10X more productive, and as we know there is a 100X difference between the best and worst programmers, so this isn’t hard to make happen.