Tag Archives: interviewing Programmers

Hiring Programmers? How to spot a reclusive geek!

Categories: Semi-Popular, Software Development | Tagged , | Leave a comment

Many of us hire programmers from time to time. But, learning how to understand these bizarre personality types requires training. They are not like the rest of us unless they are in a management position of some sort.

There are many types of personality traits common to programmers.
Some are gentle, others are hostile, a few are brilliant, many are actually mentally impaired or behave that way (how can they write code if they can’t think?) The one trait that the majority have in common is that they are anti-social. Programmers normally lack the skill to interact with others. But, the worst part from a management perspective is that they lack the desire to interact positively with others.

Many Programmers Many Cultures
I’ve hired programmers (or tried to) in a variety of cultures ranging from American, Latin, Indian, Filipino and Eastern European. The cultures are all different, but the traits of programmers maintain a similar theme. The Americans are better at communicating although they typically choose not to. They often will complete a task, but fail to inform you of that fact unless you harrass them many times asking, “What’s going on?” The Indians are generally more friendly which is a cultural reality, but often lack the skills to answer simple English questions. I always ask them what they would do if they won a million dollars. The answers are typically no more than eight words which is not very detailed. My Costa Ricans offered to do a test project for free, but went on vacation in the middle of the 2 hour project and never came back. Eastern Europe was more polite as a destination, but bizarre. When I asked the million dollar question I was informed that it was a complicated quesiton and that he needed to think for a very long time to answer it. All I wanted was a quick answer to verify that he was able and willing to communicate in simple English sentences.

Big Trouble Awaits if your Programmer Refuses to Communicate
Please be informed that hiring someone unwilling to communicate can undermine very expensive software projects. You might be paying $50,000 to get some coding done, and the programmer will refuse to answer calls, will never even email you back, and doesn’t want you around. What if there is a problem with the project and you are forced to interact with them and they won’t? Or what if they are so anti-social and irresponsible that they quit in the middle of a project? Finding a programmer with semi-decent social skills is critical for your survival, so pay attention to this during the interview process.

Telltale signs to identify an anti-social geek.

(1) Sitting silently at the interview
Have you ever gone to a programming interview where the programmer and the project manager are both there? The project manager by nature wants to dominate the conversation and impress you while the programmer might be sitting silently for hours. This is something you might ignore, but it is a serious warning sign. If you are going to have any serious dealings with the programmer, you might be in for some real trouble. At the critical moment, he might just dump your project or refuse to communicate. This happened to me.

(2) Having the receptionist always be your point of contact (avoidance)
You interview the company and you are impressed that they answer the phone whenever you call them which is only true of about 20% of programming companies. Most programming companies avoid their customers (and humans in general) and don’t want to answer their phone. I found a company that always answered the phone. The problem was that the “go-between” assured me that she would be able to give me all pertinent information about the progress of my project and not to worry. The programmer was “busy” and couldn’t be interrupted… ever. The problem here was that the programmer was UNWILLING to talk to me, and that the go-between receptionist was cut off from accurate information about the project since the programmer didn’t record any records of what he had actually done (or not done.) Yes, it is true that programmers like to lock themselves in a dimly lit room and write code. Yes, it is true that they should not be interrupted all the time. But, if they are never willing to talk to clients, that is a serious problem that can sabotage your working relationships which can be expensive if you gave them a hefty deposit.

(3) Failure to answer emails
Sure, we know that programmers don’t like to talk on the phone. But, if they just never get backto you even by email to give you a head’s up confirmation of what’s going on, that can be a serious problem. If a programmer just doesn’t get back to you, and you always have to chase them down, that is a sign that they are not responsible, anti-social, and that they don’t care that much about your project.

(4) Unwillingness to answer the phone
Is your programmer always at lunch or in the bathroom when you call? They are avoiding you. Perhaps they hate their job, their life, their boss, or you. Perhaps all of the above. This happened to me, and my project took forever to finish. I had to call eight times to get through to this person once. If a programmer you’ve worked with for years develops a bad attitude, it is time to try someone new.

(5) Failure to coordinate at the critical moment
I was visiting programmers in Northern California. I went to Yosemite to relax for a few days when they went away on a quick business trip. They were supposed to tell me when they would be back, and when they would be ready to show my their last bit of work. I never heard from them and didn’t know if should start driving back or not. They left me high and dry.

(6) Missed deadlines
If you hire a programmer on a critical time-sensitive project, you will find that 90% of programmers who don’t work for huge companies on multi-person projects just ignore deadlines. They couldn’t care less if they inconvenience your schedule. They might keep you waiting for months, or just quit in the middle of the project without even telling you they are unwillling to complete it. If you deal with programmers you need air-tight contracts that will penalize them severely if they don’t finish their work correctly and on time. It is best to test a programmer out on a project that takes about 12 hours with a written deadline. You will lose $1000 or more, but you will know if they honor deadlines. Most programmers never honor any deadline and just don’t care if they lose their customer. Customers grow on trees these days, and if you drop out, someone else will give them a deposit who they can string along. If a programmer misses a deadline, see how much longer it takes them to finish work. If getting the work done depends on your initiative, it is time to sift through many more programmers until you find one who actually takes responsibility for their commitments.

(7) Inability to answer simple questions
If you hire foreign programmers, this is a much more serious problem. If you can’t answer simple logic or small-talk type questions, how can you possibly write code? The answer is that those types of programmers are the ones that create shipwrecks for American companies who try outsourcing for the first time. They are left with a mess of broken code and often have to throw the entire mess out and start all over again. If you can’t communicate, you can’t code properly. If your communication is a mess, your code is probably a mess that nobody else will be able to work with. If you communicate sloppily, your commenting on your code will be unintelligible to the next programmer who works on it which means you created a dead-end for your client.

Advice: Interview the programmers first, THEN the project managers and salespeople.
If you hire programmers, there is an order of people at the company who you should talk to first. The sales and technical managers will always insist on talking to you first, middle and last, leaving the programmers completely out of the picture. That is what is in their interests, but not yours. The programmers are the ones who actually do the work, and if they cannot function as intelligent human beings, your code will come out a disaster. Interview the programmers first. Typically at Indian companies, they hire people who can’t even function at coding and can’t function in a conversation. See if you are impressed by one or more of their programmers. If you are impressed by all of their programmers you might be in business. 80% of programmers I interviewed in India who were fluent in English could not answer simple questions that an American ten year old could probably answer.

Test companies out
Test people out to see if the programmer initiates communication and answers email
Test the programmers out to see if they answer the phone. If you only call them at the time of the interview, that is not an indication that they will answer the phone during normal times of business.
Test the programmers out to see if they are sloppy. Give them a small task that involves following directions
Test the programmers out to see if they miss deadlines. Give them a 12 hour project with a deadline. See if they finish by the deadline with correct work.

Good luck hiring programmers. Most of these people avoid contact with humans. But, if you can find one who is relatively responsible and considerate, you might be in luck.