# How to Hire a Programmer

Source: https://www.yegor256.com/2016/06/21/how-to-hire-programmer.html

I get asked this question very often: Where and how do you find
and hire a good programmer? Since I'm a programmer and I [manage](https://www.teamed.io)
software projects, I'm supposed to know the tricks. I do, of course; there
are many of them, but the list below succinctly summarizes the most important ones.


{% jb_picture_body %}

I'll be referring to "him," but these recommendations apply equally to both female and male
~~slaves~~ software developers.

**Ask a Friend**.
The best way to find talent is through a reference. Who knows the software
market better than your high school classmate who bought a WordPress website
last year, right? He will definitely recommend a good programmer to you.
Recommendations are the most effective way of finding contractors. First,
you don't need to worry about screening and testing. Second, you'll have
a very good explanation for why your project failed---because your
friend let you down with a bad recommendation. Win-win.

{% quote Hire only locals---they are much easier to manage and punish %}

**Hire Only Locals**.
Don't even think about a remote programmer---remote projects always fail.
[Always]({% pst 2015/oct/2015-10-27-outsourcing-doesnt-work %}).
He will work in a different time zone, you will always have cultural
clashes, and his Russian accent will be annoying. You simply won't
be able to meet him every second day and
[whine]({% pst 2015/may/2015-05-21-avoid-software-outsourcing-disaster %})
about your project being
too expensive, too slow, and too frustrating. Hire only locals---they
are much easier to manage and
[punish]({% pst 2016/jan/2016-01-05-how-to-punish-employees %}).

**Don't Offend With a Lack of Trust**.
A talented professional programmer will be offended if you ask him
to pass a test or prove some of his skills. That will demonstrate that you
don't trust him. And if you don't trust him, you simply should not work together.
Trust is the most important thing in any project. Also, don't ask how
certain things will be done. He is the professional you're hiring, and he
knows what he is doing. That's enough.

**Fall in Love**.
After trust, the most important thing is a personal connection between
you two. I'm not saying you must fall in love with your programmer, but
it won't hurt. You should feel an emotional touch with him. Otherwise Java code
won't work like you need it to. If you can't fall in love, you should at least become
good friends. Invite him to your home parties, go to movies together, and
introduce him to your wife. All of this will seriously affect
the quality of the product he is creating.

**Don't Specify Too Much**.
That's what [Agile]({% pst 2016/jul/2016-07-11-mistakes-in-agile-manifesto %})
recommends, and I second that---face-to-face communication is more
valuable than documentation. Don't write any documentation, don't specify
what exactly you need to develop, and don't think too much about your "user stories."
It's all in the past. Modern software engineers figure everything out
by themselves. Just let him be creative and communicative. If something
isn't clear, just call him. Remember, a Skype call is
[always better]({% pst 2014/oct/2014-10-07-stop-chatting-start-coding %})
than those boring documents that nobody knows how to write.

**Motivate by Value**.
In order to create a great software product, he must be very _excited_ about it.
Make sure he is excited. If he is not excited, call him again. Motivate him.
Talk to him. Explain to him your brilliant Google-killer business idea again
and again. Until the moment he ~~screams~~ says "I'm excited." He must know what
a great value your product is producing for the entirety of civilization. And he
must be excited. Do I have to say it one more time? Excited! Are
you excited already? I'm excited.

**Promise Job Security**.
Even if you just raised $2K for your startup from your wife's step-dad, promise
your programmer a cloudless financial future. He must know that you've got
enough to pay him until he retires. A good programmer must want to work with you
forever. That's the type of programmer you need. You don't want one of those
greedy freelancers who always jumps from project to project. You need a long-term
commitment. That's why you have to pretend you're rich enough.

{% quote Programmers in general are not really good in financial negotiations; use that to exploit them %}

**Delay Money Talks**.
Don't mention money for as long as you can. Ideally, ask him to create
a prototype first and "then we'll discuss your salary." A good programmer
doesn't work for money. He works for satisfaction. That's who you need.
You should discuss value, excitement, features, market disruption, and
anything else that's important, but not money. Programmers in general are not
really good in financial negotiations. Use that to exploit him for as much
as you can.

**Don't Negotiate**.
Eventually you will have to discuss money. Make sure there will be no
negotiation involved. It'll be an offensive process, and most programmers
are very sensitive. Just tell him how much you will pay, and if he doesn't
feel that is enough, get back to the value/excitement/market conversation.
Do it again and again until he agrees.

**Require Full Commitment**.
Make sure he will be fully committed to the project. Ideally, he must not have
any other projects or even any personal life at all. He must promise to be 100 percent with
you and your idea. If he is planning on doing something else, demonstrate that it
will offend you. Act jealous, like a loving wife. You don't need a programmer
who is interested in something else.

{% quote You're going to be his leader, and a good leader is never too honest with subordinates %}

**Make Him a Partner**.
First of all, making him a partner will save you a lot of money. Ideally,
you should convince him to work
[for free]({% pst 2014/oct/2014-10-29-how-much-do-you-cost %}).
Good programmers are good
entrepreneurs and like to take risks. A good programmer knows that
in order to become the next Mark Zuckerberg, he must start at a
job with no salary. Give him some
[equity]({% pst 2016/jan/2016-01-12-good-programmers-dont-work-for-equity %})
and keep those motivational speeches
coming. It's a perfect money-saving technique.

**Be Positive**.
Simply don't tell him about your risks and concerns. The future of your
project is bright, and he doesn't need to know more. You're going to be his
[leader]({% pst 2016/may/2016-05-24-who-is-project-manager %}),
and a good leader is never too honest with subordinates. Always
be positive about the plan---he needs to get that from you.

<hr/>

That should be enough to find and hire a good programmer. Interestingly enough,
I just re-read this text one last time and it looks to me like
a "how to find a wife" tutorial. Don't you think?
Anyway, did I forget anything? Don't hesitate to post some extra wisdom below in
the comments section.

<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">You need to hire a programmer. Which one out of these four you will choose? <a href="https://twitter.com/hashtag/career?src=hash&amp;ref_src=twsrc%5Etfw">#career</a></p>&mdash; Yegor Bugayenko (@yegor256) <a href="https://twitter.com/yegor256/status/1124974749954842624?ref_src=twsrc%5Etfw">May 5, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
