> If you say you’re a master of network protocols, guess what, I’ve maintained a TCP/IP stack, and unless you’re really a master I’m going to bury you.
The goal of interviewing is never under any circumstances to "bury" someone with obscure, difficult questions. Even as the OP is obviously impressed with his own skill set ("I've maintained a TCP/IP stack") I'm sure someone coming from a different vantage point could stump him easily, there's too many nooks & crannies of a field that vast.
> I’ve interviewed several people that couldn’t write Fibonacci sequence. I’d tell them what it was and write on the whiteboard the first ten numbers so they could see it. They’d start typing and immediately go into the weeds.
There's a lot of pressure in the live format to produce right away. Maybe you should consider take-homes instead of instantly assuming the candidates lack your superior communication and abstract reasoning skills?
> Don’t make me point out cases where your code breaks.
Right. I'm sure you've never written a bug in your life -- especially as a C programmer.
> I tend to interview people on a laptop running Ubuntu, and I open gedit for them to use, with the offer that they can use any other Unix editor they like.
I run Ubuntu desktop but why throw someone out of their comfort zone? Just ask them to bring a machine, or remote into a Google Hangout. The point of the interview is not to surprise candidates in unknown environments then feel superior because they don't know what you know.
> ...I ask if you’ve got questions for me, and you say, “so what does your company do?” the interview is over.
If it's cheapfurnaces.com, sure. But most companies it's not completely obvious what the company does exactly, even if you browse the company website or LinkedIn -- don't be so snide in your assumptions the candidates did no research on the company first, maybe they're just not articulate in their phrasing when asking what exactly a company does. They applied for a developer role, not to be CEO. This seems like an arrogant position to take.
> I’m not trying to beat up candidates because I’m a sadist, I’m looking for people I want to work with.
There's also a fair amount of chest-beating going on here, IMHO. The OP doesn't just want to assess the skill level of the candidates he simultaneously wants to assert his own perceived superiority ("most programming job applicants suck").
OP should consider acting more humble and try to demonstrate more empathy toward others -- often it's not the candidates "sucks" but his or her particular skill set or career level isn't ideally suited to the open role.