When looking for a job, there are a lot of people who are wasting time and not serious about hiring someone great. If someone has a psychopathic/parasitic personality type, they actually will be frustrated if they hire someone really talented, rather than appreciating their contributions. If someone is rude to you during the job interview process, that’s a dead giveaway that they will be rude once you work for them.
I already mentioned that programming interview tests and assignments are almost always a waste of time. If a programming assignment is too simple, then it isn’t a real test. If it’s too long, then it’s a huge time-sink just for an interview. Multiple-choice screening tests tend to have mistakes or they focus on obscure language trivia. There are too many times that I did the test or assignment, did well, and didn’t even get an interview. My favorite is when I take a defective multiple-choice test, get 90th percentile, and the headhunter says “The client doesn’t want someone who’s 90th percentile. He wants 99th percentile.” Even more offensive, sometimes the interviewer is trying to trick me into giving him free consulting with his assignment, taking some problems he couldn’t solve and turning them into an interview assignment. Now, I don’t bother.
What’s the point of having a CS degree from a top university and more than 10 years of experience if every hiring manager is going to treat me like a completely unqualified fool? That’s a sign that writing software is not a true professional career. If the hiring manager isn’t willing to talk to you for a few minutes to figure out if you’re intelligent or not, then he’s probably clueless.
I do give code samples. For the exact same code sample, I’ve had some people say “That’s a great code sample.” and others say “That’s not good enough.” Again, it reflects more on the cluelessness of the interviewer, more than me doing something wrong.
I’ve noticed another trend. Some flaky startups demand you sign a non-disclosure or even a non-compete as a prerequisite to an interview. I’ve reluctantly agreed a few times, and regretted it. When someone demands that you sign a non-disclosure agreement before an interview, their idea invariably is incredibly stupid and not worth stealing. For example, I’ve signed several NDAs for someone making “a real estate listing website”. There literally was nothing more to their idea than “I want to make a real estate listing website.”, their spec was a copy of Zillow, and they were demanding an NDA! Do they realize how many people are entering that area?
One person even demanded a non-compete before agreeing to an interview! Why is that a bad idea? If his idea is incredibly vague and ill-defined, a “non-compete” could be interpreted as almost any other programming job! How can I agree to not compete with an idea that hasn’t been disclosed to me?
Also, for a contract to be valid, there has to be consideration, an exchange of value. If I’m signing a NDA in exchange for an interview, that isn’t a valid contract. I have to receive some tangible benefit for it to be a valid contract. Even though it may not be an enforceable contract, I don’t want to deal with someone who’s going to sue me over something trivial, especially if I later find a job that could be interpreted as related to his stupid idea.
When someone demands a non-disclosure agreement before telling you their startup idea, that’s a dead giveaway that they know nothing about running a successful business. It isn’t enough to have an idea. You also need the ability to execute.
It’s also a type of egoism, on the part of a non-technical startup founder. The non-technical startup founder brings nothing to the table, other than his ability to raise money, contacts for potential customers, and his idea. Therefore, he treats his idea as if it’s something incredibly brilliant and valuable. The nontechnical founder has been thinking about nothing but this idea for months, causing him to have an exaggerated sense of its importance.
If you’re a startup founder with an idea but no competent technical co-founder, then your startup is doomed. Unless you have a technical cofounder that can develop version 1.0 by himself in a few months, your startup is worthless. (Version 1.0 is frequently called MVP or “minimum viable product”.) If you are not technical yourself, then you are almost guaranteed to hire a good liar instead of someone who is going to create a great product.
An NDA is insulting. It says, right away, that they assume that I’m going to cheat them, rather than someone sincerely looking for a job. Do I have nothing better to do than steal your stupid idea? An NDA is an implied threat to sue someone. I don’t like it when the first thing someone does after I meet them, is threaten to sue me.
Also, I went on a few startup interviews that DIDN’T require a NDA for an interview. They had good ideas or somewhat viable ideas with a legitimate chance of success. It’s only the true fruitcakes, who demand an NDA for an interview.
There is one exception. If you get an interview at Google or some other established business that demands an NDA for an interview, then you should sign it. My “no NDA” rule is primarily directed at startup interviews. Google isn’t going to tell you the details of their search engine algorithm on an interview; what do they think they’re accomplishing with the NDA, other than making themselves seem more important than they are?
Also, to avoid confusion, it is acceptable to sign an NDA or a limited non-compete at the offer stage. It’s insulting when someone demands that before an interview. My favorite clause in an employment contract is the “non-disparagement clause”, forbidding you to say anything negative about them. Most of the people with a “non-disparagement clause” in their employment contract did some shady things.
I’m adding a new jobsearch rule, “Don’t sign an NDA as a prerequisite to a startup interview.”, in addition to “Don’t take programming tests and assignments.” These rules exist to help me avoid wasting time and energy on clueless and evil people. My primary reason is that, by requiring an NDA, the startup founder is identifying himself as someone clueless. It’s a bad idea to work for someone clueless. Such an NDA probably isn’t enforceable anyway, because there’s no consideration to make it a valid contract. I don’t want to deal with someone who might sue me over something trivial, especially if I someday find a job that might be vaguely interpreted as related.
There is one problem. If I’m the only person who refuses programming tests and NDAs, then I look like “not a team player”. If a lot of people start refusing, then employers might start to get the message “This is an insulting thing for us to demand of applicants.” The economy is bad right now, making it hard to take a principled stand. I’m doing it anyway, to avoid wasting time dealing with clueless people. After an interview with someone abusive, I feel frustrated for several hours afterwards.
These rules have been learned the hard way, rather than a result of me being stubborn. I’ve done many programming tests and assignments, and it never led anywhere, and now I refuse. What was the point of doing all that work for a CS degree, if many employers demand a stupid screening test? I know that I’m a great programmer, based on my education, raw ability, and by comparing myself to coworkers. It’s hard to measure that in a flawed multiple-choice test or short assignment. I’ve signed several NDAs for startup interviews, listened to some incredibly stupid ideas, and now I don’t do that anymore.