📜 ⬆️ ⬇️

How much should developers pay?

Not so long ago, an interesting post appeared on the stackoverflow blog from Joel Spolsky, co-founder of Stack Exchange, about salary calculation for developers. Next to Habrakat, an excerpt from this post, and after - free translation of the document on the compensation system in the Stack Exchange.

Now is the time of the year when we revise the salary of each employee in order to make sure that it corresponds to his level. We depend on a dozen system developers and pay them on the basis of a compensation system developed by our cousins ​​from Fog Creek, which is so different from the Stack Exchange that some friction arose.

So we sat down and thought about compensating developers on the basis of basic principles, and came to the realization that this is a fairly correct way to pay for good people.
One of the key principles of the Stack Exchange is that we do everything we can, publicly, and we try to keep public artifacts for everything we do. In the spirit of this, I downloaded the full version of our current compensation calculation plan, so you can see how decisions are made regarding the level of compensation in the Stack Exchange. Only one thing did not become public - the final calculations that determine each individual check, this is because we must balance our philosophy of openness with the right of each developer to personal inviolability.

Developer Compensation in Stack Exchange

This is a description of how the salary of developers in the Stack Exchange is determined.


The development team at Stack Exchange is an amazing group of programmers that justifies our slogan “to be smart and achieve results” every day.

We want to offer them fair, easily understood, transparent and competitive compensation.

Fair means no games. Our compensation is not based on how well you negotiate or how often you ask for a raise; it is based on a repeatable predictable system. There is no compulsory rating, so people can keep each other from working well. We do not have possible salary levels for each level, we have one salary and a system for calculating it.

Easily understood - it means that any developer can find out what his salary should be according to the system. He can see what needs to be done to move up the career ladder. Also, various managers can find out how much to pay their team members and get consistent and fair results.

Transparent - reflects the key beliefs of the Stack Exchange about keeping our business open and without secrets. This means that if the list of salaries of each unexpectedly appeared on Wikileaks, no one would have been surprised enough to be upset. Transparency is the basis for guaranteeing fairness.

Despite our belief in transparency, we also believe in the right of our developers to privacy. We publish everything about how the system works, but we will not disclose how much everyone earns.

Competitive - means that you earn at least as much in the Stack Exchange as you could earn in any other place. It is critical to be attractive and to be able to keep those developers that we would like to see working for us. If our compensation system is uncompetitive, we will not be able to hire the people we want without offering an “exceptional” salary and exceptions to justice.

Components of competitive salary

The upper limit of the salaries of C # developers worldwide can vary from $ 30,000 to $ 200,000.

We conducted extensive research on the fact that they use other companies to determine the salaries of programmers in order to be confident in the competitiveness of our system. We found that market wages are a function of:
  1. Skills: how good you are in what you do;
  2. Business areas: how many things you are responsible for;
  3. Experience: how long are you a programmer;
  4. Company size: small companies pay less for large ones;
  5. Location: each geographical point has its own market wage;
  6. Public artifacts: how much you work in public and how well you are recognizable in the community.
Our system takes into account all these points.


Even working in an abnormally talented group of people like the Stack Exchange team, there is always the opportunity to stand out. Skills are re-assessed every summer by your direct manager. See the “Be More Stunning” Chart 2011 at the end of this document.

Areas of activity

The “scope of activities” category reflects how much responsibility you have. In large companies, this means how many levels of managers are over you.

In the Stack Exchange, we do not have a clear delineation of the code and heaps of levels of “fields of activity”, but we have:


Programmers tend to acquire skills at drastically different prices. There are many 18-year-old programmers who can run around the 20-year veterans in circles. However, there are periods of experience within which the market tends to compensate for them in different ways. For example, in companies of our size there is almost always a single, fixed starting salary for new graduates, regardless of skill (probably because the child cannot talk about “skill” until he works for a while). One year after graduating from such a school, skills determine wages much better.

Our periods of experience:
  1. College student or intern;
  2. From 0 to 1 year;
  3. From 1 to 5 years;
  4. From 5 to 15 years;
  5. From 15 years.
We measure experience as full time dedicated to software development .

Company size

We constantly compare our salaries with companies of similar size. More specifically, we look at the salaries of other Internet startups in the United States who have less than 100 employees, funded through venture capital or already valued as profitable. We are definitely not trying to chase Google, Microsoft, investment banks or heated startups.


Because our team is geographically distributed, we could try to set salaries based on location (for example, a developer from Kansas gets a salary that corresponds to Kansas), but we do not see justice in reducing the salaries of people who live in the wilderness when they do the same work Thus, our salaries are coordinated on a global scale for developers working from home, even if it is for the good of people living in places with low cost of living.

Due to the unusually high cost of living in New York and the high market level of wages in New York, and the fact that we do not want to accidentally encourage people to move out of the backwoods and quit distant work, there is a fixed cost of living slightly increased for New York City. York

Public artifacts

One of the key values ​​of the Stack Exchange is the fact that we work publicly and the creation of public artifacts - an electronic, public trail of bread crumbs for the work we do - is extremely important to us.

This is part of the compensation, because the better known about you in the industry, the higher the salary you receive.

There are several ways you can use to create public artifacts. No one will use them all, but doing at least some of these things is the main part of each set of skills. Here they are:
The idea is that you are expected to create public artifacts as a representative of the Stack Exchange team - barely noticeable performance at the conference without introducing yourself as a member of the Stack Exchange means nothing to us. Shirts are free. Put them on.

All these things increase your market value, thereby confirming our desire to pay you more money, and when you do this as a representative of the Stack Exchange, this affects us, strengthening our reputation as a place where elite, well-known developers work, which, in their turn, attracts even more high-end developers.

“Being More Stunning” 2011 Chart

AAA +++ The level of gurus. Makes and teaches. You are really famous for this skill. This is rare even in our awesome team. Most people should have no more than one or two such skills.

A + Awesome. Fully dominant skill.

A Sufficient. Skill sufficient to perform current work.

B Be More Stunning. This is a good point to work on improving their skills next year.

If you have a lot of B, do not despair. It simply means that you are closer to the beginning of your career than to the middle and there are plenty of opportunities for further growth.

We don't have a C, because everyone here is amazing. If you were doing work at the level of C, D, or F, we would have talked to you seriously and would have worked closely to fix it.
SkillSelect level
Fundamental programming
Cycles, subroutines, etc. Basics of programming
BAA +AAA +++
Web development
HTML, CSS, JavaScript / JQuery, Ajax
BAA +AAA +++
Our programming tools
BAA +AAA +++
Other engineering skills
DVCS, error correction, automation, teamwork, etc. All the things you are talking about at programmers.se
BAA +AAA +++
Extracurricular Programming Training
The study of interesting new technologies for their own sake.
BAA +AAA +++
Creating public artifacts
Blog posts, open source tools, books
BAA +AAA +++
UI Design
Good skills in understanding user experience - a code that is easy to read and use
BAA +AAA +++
Well organized delivery. Skill in fast delivery of code to users
BAA +AAA +++
Joint programming, volunteering, evangelism, public speaking
BAA +AAA +++
Completing of the work
Fulfillment of plan, fulfillment of tasks
BAA +AAA +++
Performance and Optimization
Constantly work to accelerate user experience.
BAA +AAA +++
Data acquisition
View user data to find ways to improve them
BAA +AAA +++
Administration system
Important technologies used on our hosting
BAA +AAA +++
Constant generation of new ideas
BAA +AAA +++
Modem connection sound
The ability to emulate a 1200 baud modem using only your mouth (with error correction protocol) is good enough to load GIF into CompuServe
BAA +AAA +++

Source: https://habr.com/ru/post/285410/

All Articles