Technical Interviews at a Startup
tomblomfield.com
tomblomfield.com
I'd prefer it if they'd just say, "send us a sample of your work, or a link to your source online."
in regards to Github, if Git is used already in the company's development process, the candidate would need to show that he or she is familiar with Git. Then Github is the first destination to show that. On the other hand, of course there are plenty of other Git hosting opportunities -- sourceforge, for example.
"if Git is used already in the company's development process, the candidate would need to show that he or she is familiar with Git"
Any company that requires a potential hire to be familiar with their current source control system is an insanely stupid organization.
Not if it's my code. I shouldn't have to open source my own code just to show it.
at the moment I rent a minimalist VPS for about $35 a year and use gitolite to organise my private repos. Works perfectly so far :)
I've heard other companies give prospective employees a week-long project on a consultancy basis - I think this is a great method of determining if there's a mutual fit. Unfortunately, it's a bit unrealistic to expect most candidates to be able to drop current commitments for a week.
for a company, I don't see a problem to show some project internals under NDA
I've been at two on-site interviews at Google, and that was the most exciting experience, especially the first time. Now I know how proper technical interviews should be done. In general, I realized how much more I'm able to do, compared to what I was doing at my place of work.
The general approach is to figure out how the candidate is able to think in a structured and analytical way. It doesn't matter if the candidate doesn't know something -- much more important is to see how he or she is developing the answers during the interview. Of course, the questions should also allow such freedom.
Also useful, is not to ask for definitions of something, but for difference: how A differs from B and why? Then you clearly see if the candidate understands what's behind it, even if they have forgotten some little details.
I absolutely agree that the main aim of an interview is to determine if a candidate is able to think in a structured and analytical way. I'm much more interested in talking about situations when you might choose UDP over TCP, rather than being able to recite the details of a particular HTTP specification
Besides, you can dig deeper in any direction, depending on the candidate profile. For a network engineer, understanding on the packet level is important. For a web programmer, the interaction between server and client is important (HTTP headers, MIME types etc, webserver scalability etc.). For a sysadmin, understanding of processes and interaction of applications and OS is important. All those can be derived just from a simple question -- what happens when you click on a link
besides, you can silently participate in the interview, or review the sound recording afterwards.