Fog Creek

4. Remote Code Tests


Learn about the scenarios that work in remote code tests and what to look out for in the best candidates.


A phone, Co-pilot interview, we use Co-pilot, which lets us see the interviewees computer. They run a little program, we’re running a little program, and we’re watching everything that they are doing. And we’ll ask them to write a piece of code, whilst telling us what they are thinking of. We’ll ask them to write a simple function, to do something fairly simple. Just to see if they really are a programmer if they get it right, if they make kind of off by one errors that give you an idea that this is something, somebody who is really new, a novice. Or to see if they’re really expert programmers.

Whether it’s in person or over a computer or over Co-pilot. Whenever you ask somebody to write code, there’s a few things you have to watch for. Number one, they are in an interview, they’re going to be nervous. So you kind of have to give them a free pass on being nervous, that has no correlation to whether or not they’re a good developer. And they’re going to make simple, kind of stupid mistakes. Sometimes, like they make a simple mistake like they forget a semi-colon at the end of a statement. And you kind of have to forgive that, they’re nervous, it’s the interview process. They’re not actually typing into a compiler, the compiler would have caught it for them. Sometimes though it appears as though they don’t know that their programming language, which they claim to be their favorite programming language, requires a semi-colon at the end of every statement. And then there’s obviously a problem there and you’re not going to want to hire them. So there’s certain things you can give people a free pass on, very, very simple syntax, almost like typos, like ‘oops, I forgot to type the semi-colon.’ Which is very different than I appear not to have full control over this programming language.

We tend to fluctuate between just asking people to do the code interviews in C, which we consider a lingua franca, that all programmers should have learnt at some point. And the truth is that C isn’t used that often anymore. And so if a programmer has been working in Java and C# or in some other programming language a lot lately, then it may be easier for them to do the interview in that language. We’d expect to see a certain amount of fluency in that language since that’s what they are programming in every single day.