Hello, yesterday I found your posting about not signing NDAs.
I had recently turned down a job interview with Hangtime because of
a 5-page NDA. I suspect such NDAs are a sleazy way to eliminate
potential competition i.e. because anybody can easily duplicate
software that is so simple. In this sense, the interview is done
in bad faith and is actually an offensive tactic of commercial war.
Imagine you have 2 factories, A and B. One day, the owner of factory A
arranges a lunch with the owner of factory B, offering an alliance
of sorts. But first, B's owner must sign a paper, whose fine print prohibits
him from making the products he makes every day. They call it an
NDA, but really it's a weapon.
Use of this NDA-attack is increasingly looking like a standard
tactic in the Bay Area to handcuff independent programmers, whom
as far as I can tell they strongly do not want to hire
in the first place, as we are not "corporate" enough.
On a different subject, I can confirm what you suggest about people
in the tech business, that many are psychopathic personalities.
Both the programmers themselves (who prefer machines to people)
and the business side (who prefer money over people).
I sympathize with your interviewing experiences as they mirror mine.
Interviewing is supposed to be about learning the truth,
but for a psychopath an interview is just another power play
to keep out competition.
Psychopaths don't have any interest in the truth, or fairness,
or a worker's potential, or helping their employer. They fear talent.
They're dumb people without talent and they know it.
All they have is the social angle and they play that to the hilt.
The natural solution is for smart people need to start their own companies.
Ergo commented on Don't Sign An NDA Before A Programming Job Interview.
For what it's worth, people do a similar scam in the translation business. They send out snippets of text to be translated from language X to language Y as a "test", when in fact all they've done is break a real project into individual paragraphs to be translated as tests by numerous people who are hopeful and/or don't know any better.
My suggestion is, if you think a coding assignment is real work, make sure you put a bug in the code if possible and/or structure it in the most complex way possible that still looks good e.g. for a parser, definitely use YACC.
As an alternative, when you send the code over:
(A) make sure your copyright is on it.
(B) apply the GPL to it.
(C) post it to your personal website.
That way, if the douche bag you're interviewing with tries to use it, he'll be violating the GPL plus anyone can use the code is a real (free) project.