# How Much Do You Cost?

Source: https://www.yegor256.com/2014/10/29/how-much-do-you-cost.html

{% badge //www.zerocracy.com/svg/logo.svg M https://www.zerocracy.com %}

I'm getting a few emails every day from programmers
interested in working with [Zerocracy](https://www.zerocracy.com) remotely.
The first question I usually ask is "what is your rate?"
(we pay [by the hour]({% pst 2014/apr/2014-04-17-how-xdsd-is-different %}))
What surprises me is how
often people incorrectly estimate themselves, in both directions.

I hear very different numbers, from $5 to $500 per hour. I never
say no, but usually come up with my own hourly rate estimate. This article
explains what factors I do and don't take into account. These are
my personal criteria; don't take them as an industry standard.
I do find them objective and logical, though---so let me explain.


## Open Source Contribution

{% badge /images/2014/11/rate-open-source-contribution.png XXL %}

This is the first and the most important characteristic of a
software developer. Do you contribute to open source projects?
Do you have your own
[open source]({% pst 2015/dec/2015-12-22-why-dont-you-contribute-to-open-source %}) libraries that are used by
some community? Do you write code that is publicly available and used?

If you have nothing to show here, I see three possible causes.

{% youtube GS45LzE3LPQ %}

First, you're _too shy to share_ your code because _it's crap_.
[Obviously]({% pst 2015/dec/2015-12-22-why-dont-you-contribute-to-open-source %}),
this is not a good sign. Not because your code could be bad, but because
you're not brave enough to face this fact and improve. In our teams we
[pay a lot of attention]({% pst 2014/aug/2014-08-13-strict-code-quality-control %})
to the [quality]({% pst 2017/apr/2017-04-11-flexibility-equates-lower-quality %}) of code and most of our
new team members get surprised by just how high our quality bar is. You will also
be surprised. The question is whether you will be able to adapt and improve
or if you will give up and quit. If you didn't share your code before
and have never dealt with negative feedback, you won't feel comfortable
in our projects, where quality requirements are very high.

{% quote You're not able to at least find and fix one bug in some open source product you're using? %}

The second possible cause is that
you work from nine till five, for food, _without passion_. Actually,
nobody manifests it that way. Instead, I often hear something like
"my company doesn't pay me for open source contribution and
at home I want to spend time with my family." In modern software
development, most of the code we're working with is open source---libraries, frameworks, tools, instruments, etc. Almost everything you're using
in your commercial projects is open source. By paying your salary your
employer does already invest in open source products,
because you're an active user of them. The problem is that *you* are not
interested in becoming more active in that contribution.
I see this as a lack of passion and self-motivation.
Will you be an effective developer in our projects? Not at all, because our
entire management model relies on [self-motivation]({% pst 2014/apr/2014-04-17-how-xdsd-is-different %}).

{% youtube 6mfo_FHL3PE %}

The last possible cause is that
you don't know what to write and where to contribute, which means
_lack of creativity_. As I mentioned above, almost everything we're using
now is open source, and these tools are full of bugs and not-yet-implemented features.
At the same time, you don't see any areas for improvement? You don't
know what can be done better? You're not able to at least find, report and fix
one bug in some open source product you're using every day? This means
that you won't be able to find areas of improvement in our projects either,
while we rely on your ability to
[discover problems creatively]({% pst 2014/apr/2014-04-13-bugs-are-welcome %}).

Thus, if your GitHub account is empty and your CV doesn't position you
as "an active contributor to Linux kernel" (yeah, why not?), I immediately
lose interest. On the other hand, when I see a 100+ stars project in your
GitHub account, I get excited and ready to offer a higher rate.

## Geographic Location

It is a common practice to pay higher rates to those who live in more
expensive countries. When I'm getting resumes from San Francisco programmers,
their rates are $70+ per hour. The same skills and experience cost
$15-20 in Karachi. The reason here is the cost of living---it is much higher in the US than in Pakistan.

{% quote We prefer to work with people whose expenses are lower %}

However, this reason doesn't sound logical to me. If you're driving a more
expensive car, we have to pay you a
[higher salary]({% pst 2016/dec/2016-12-06-how-to-pay-programmers-less %})? The same with the
place to stay. You've chosen the country that
you live in. You're using all the benefits of a well-developed country
and you're paying for them. It's your choice. You decided to spend more money
for the quality of your life---what does it have to do with me?

Want to pay $30 for a lunch? Become a better engineer. Until then,
buy a hot dog for a few bucks. Just saying that
"I'm already here and my lunch costs $30" is not an argument.

Thus, the more expensive the place you live, the less money
stays in your pocket. For us this means that $100 will motivate a programmer
from Karachi much stronger than the same $100 will motivate the same person,
if she lives in San Francisco. Thus, we prefer to work with people
whose expenses are lower. Our money will simply work better.

## Stack Overflow Reputation

We all know what Stack Overflow has but very few people (surprisingly few!)
actively contributing to it. If your profile there is empty (or you don't have
one) I realize that you 1) don't have any questions to ask
and 2) you have nothing to answer.

First, if you're not asking anything there, you are not growing. Your education
process stopped some time ago, probably right after you got an
[office job]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %}).
Or maybe you're too shy to ask? Or you can't describe your questions
in an accurate and precise format? Or maybe all your questions already
have answers? In any case, it's sad.

{% quote SO reputation is proof that you can find answers to your questions by communicating with people you don't know %}

Second, if you're not answering, you simply have nothing to say. In most cases,
this means that you're not solving complex and unique problems.
You're simply wiring together well-known components and
collecting your paychecks.

Very often I hear people saying that they solve most of their problems
by asking their colleagues sitting next to them in the
[office]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %}). They say
they simply don't need Stack Overflow (or similar resources, if they exist)
because their team is so great that any questions can be answered internally.
That's good for the team and bad for you. Why? You don't have a very important
skill---finding an answer in a public Internet. In our projects we
[discourage]({% pst 2014/oct/2014-10-07-stop-chatting-start-coding %})
any horizontal [communications]({% pst 2016/aug/2016-08-23-communication-maturity %})
between programmers, and you won't be
able to get any help from anyone. You will be on your own and you will fail,
because you are used to be patronized by someone senior, in your
[office]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %}).

<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">How much would you charge per hour, for a remote part-time consulting gig? <a href="https://twitter.com/hashtag/freelance?src=hash&amp;ref_src=twsrc%5Etfw">#freelance</a></p>--- Yegor Bugayenko (@yegor256) <a href="https://twitter.com/yegor256/status/993162626497699840?ref_src=twsrc%5Etfw">May 6, 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[Stack Overflow]({% pst 2017/feb/2017-02-14-stackoverflow-is-your-tool %})
is not just an indicator of how smart you are and how many
upvotes you got for the
"[best programming joke](http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke)."
It is proof that you can find answers
to your questions by communicating with people you don't know.
It is a very important skill.

## Years of Experience

{% badge /images/2014/11/rate-years-of-experience.png XXL %}

"I've written Java for 10 years!"---so what? This number means only
one thing to me---you managed to survive in some office for ten years.
Or maybe in a few offices. You managed to convince someone that he
has to pay you for ten years of sitting in his building. Does it mean
that you were writing something useful?
Does it mean that your code was perfect? It doesn't mean any of that.

Years of experience is a false indicator. It actually may play against you,
in combination with other indicators mentioned above. If your CV says that
you just started to program two years ago and your GitHub
and Stack Overflow accounts are empty---there is still a chance
you will improve. You're just in the beginning of your career. However,
if your CV says that you're a "10-year seasoned architect" with zero
open source contribution---this means that you're either lying about
that ten years or you're
[absolutely useless]({% pst 2015/sep/2015-09-29-mayonnaise %})
as an architect.

My point is that the "years of experience" argument should be used very carefully.
Play this card only if you have other merits. Otherwise, keep it to yourself.

## Certifications

{% badge /images/2014/11/rate-certifications.png XXL %}

Oracle, Zend, Amazon, IBM, MySQL, etc.---I'm talking about these certifications. In order to get them you should
pass an exam. Not an easy one and not online. It is a real exam taken in
a certification center, where you're sitting in front of a computer for a few
hours, without any books or Internet access, answering questions. Rather
humiliating activity for a respected software developer? Indeed. And there
is a high probability of failure, which is also rather embarrassing.

It is a very good sign, if you managed to go through this. If you've done
it a few times, even better. However, if you've earned no certifications
in your entire
[career]({% pst 2017/jan/2017-01-24-career-advice %}),
it is for one of the following reasons:

First, you're _afraid to lose_. A serious certification may cost a few hundred
dollars (I paid over $700 for [SCEA](https://en.wikipedia.org/wiki/Oracle_Certification_Program))
and you will not get a refund if you
fail. If you're afraid to lose, you're afraid to fight. This means
you'll chicken out in a real-life situation, where a complex problem
will need to be solved.

Second, you _don't invest_ in your profile. This most probably means that you don't
want to change companies and prefer to find a peaceful office, where you
can stay forever. I remember I once said to a friend of mine---"you will greatly improve your CV if you pass this certification." He
answered with a smile---"I hope I won't need a CV any more, I like
this company." This attitude is
[very beneficial]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %})
for the company you're
working for, but it definitely works
[against]({% pst 2015/jul/2015-07-21-hourly-pay-modern-slavery %}) you.

In my experience, the best
[team players]({% pst 2015/mar/2015-03-02-team-morale-myths-and-reality %})
are those who work for themselves.
Healthy _individualism_ is a key success factor. If your primary objective
is to earn for yourself (money, reputation, skills, or knowledge)---you will be very effective in our projects. Certifications in your
profile is an indicator of that healthy individualism we're looking for.

## Skills Variety

The more technologies or programming languages you know, the less you cost.
I'm not saying that it's not possible to be an expert in many things at the same time---that's entirely possible. But let me give you a pragmatic reason why you shouldn't---competition. There are thousands of "Java7 programmers" on the market---we can easily choose whoever we need. But there are not so many
"Hadoop programmers" or "XSLT designers."

{% quote We end up paying more to narrow-skilled specialists because we have no choice %}

If you focus on some specific area and become an expert there,
your chances of finding a job are lower, but the payout will be bigger.
We usually end up paying more to narrow-skilled specialists, mostly because
we have no choice. If a project we're working on needs a Lucene expert,
we'll find the right person and do our best to get him/her on
board. Doing our best means increasing the price, in most cases.

Thus, when I hear that you're "experienced in MySQL, PostgreSQL, Oracle and SQLite"
I realize that you know very little about databases.

## Talks and Publications

{% badge /images/2014/11/rate-talks-and-publications.png XXL %}

I think it is obvious that having a blog (about programming, not about
your favorite cat) is a positive factor. Even better is to be an
occasional
[speaker]({% pst 2016/may/2016-05-10-keynote-clowns %})
at conferences or meetups. When it is a blog, I
pay attention to the amount of comments people leave for your articles.
If it is a conference, the most important criteria is how difficult it
was to get to the list of speakers.

Both blog articles and conference presentations make you much more
valuable as a specialist. Mostly because these things demonstrate that some
people _already reviewed_ your work and your talent. And it was not just
a single employer, but a group of other programmers and engineers.
This means that we also can rely on your opinions.

Besides that, if you write and present regularly, you have a very important
skill/talent---you can present your ideas in a "digestible" way.
In our projects we
[discourage informal communications]({% pst 2014/oct/2014-10-07-stop-chatting-start-coding %})
and use ticketing systems instead. In those tickets you will have
to explain your ideas, questions or concerns so that everybody can
understand you. Without enough presentation skills, you won't survive
in your projects.

BTW, some software developers even file patents in their names---why
can't you do this? Or maybe even publish a book. Why not?

## Previous Employment

I usually don't pay much attention to this section of your CV. Our management
model is [so different]({% pst 2014/apr/2014-04-17-how-xdsd-is-different %})
from anything you can see anywhere else that it doesn't really matter
how many times you were fired before and how senior of a
position you have/had with your full-time employer. Even if your title
is "CTO of Twitter"---it doesn't mean anything to me.

My experience tells me that the bigger the company and the higher the position
in it---the further away you stay from the source code and from
real technical decisions. VPs and CTOs spend most of their time on
management meetings and internal
[politics]({% pst 2016/sep/2016-09-27-command-control-innovate %}).

I'm much more interested in _what_ you've done over the last few years than
in _where_ you've done it and what they called you while you were
doing it.

## Education

BSc, MSc, PhD... do we care? Not really. Education is very similar to
the "previous employment" mentioned above. It doesn't really matter
where exactly you've spent those five years after school. What matters
is what have you done during that time. If you have nothing to say
about your activity in the university than what will the name of it
tell me?

Well, of course, if it is Stanford or MIT, this will make a difference. In this
case I can see that you managed to pass their graduation standards and managed to
find money to study there. This is a good sign and will definitely increase
your hourly rate. But if it is some mambo-jambo university from nowhere (like
the one I graduated from), keep this information to yourself.

## Rates

**$100+** per hour we gladly pay to an expert who owns a few popular open source
products; has a Stack Overflow score above 20K; has certifications,
articles, presentations, and maybe even patents.

**$50+** per hour we pay to a professional programmer who has open
source projects on his own or is an active contributor; has a Stack Overflow
score over 5K; is writing about software development;
possesses a few certifications.

**$30+** per hour we pay to a programmer who regularly contributes to
open source code; is present in Stack Overflow; has some
certifications.

**$15** per hour we pay to everybody else.

Don't get me wrong and don't take these numbers personally. The rate
you're getting is a measurable metric of your professional level, not of you as a person.
Besides, the level is not static, it is changing every day, and it's entirely in your hands.

I wrote this article mostly in order to motivate you to grow.

All these criteria are applicable to new members of our teams. Once you
start writing some code, we measure your performance and you may get
completely different numbers, see
[How Hourly Rate Is Calculated]({% pst 2014/apr/2014-04-20-how-hourly-rate-is-calculated %})

BTW, illustrations you see above are created by
[Andreea Mironiuc](https://andreeaillustration.wordpress.com/).
