JavaRush /Java Blog /Random EN /How much are you worth (translation)
dksd
Level 35
Москва

How much are you worth (translation)

Published in the Random EN group
Translation from the website yegor256.com . Original article in English. The article caused quite a strong reaction on Evgeniy Bugaenko’s blog. It describes the criteria that, in the author’s opinion, influence the amount of a programmer’s hourly pay. The position is not unambiguous, it raises questions, but nevertheless it has a place to be. The material is not aimed at beginners. At the same time, it seems to me that the article will be useful for indicating the direction of your development, of course, in addition to pumping up your programming skills. The original translation is posted here . ________________________ I receive several letters every day from programmers interested in working with teamed.io remotely. The first question I usually ask is “What is your hourly rate?” (we pay by the hour ). It surprises me how often people incorrectly evaluate themselves both higher and lower. They give me various numbers, from $5 to $500 per hour. I never say no, but I usually come up with my own estimate of the hourly rate. This article explains what factors I consider and what I don't. These are my personal criteria, do not take them as a professional standard. They seem objective and logical to me. Contribution to open source projects. badge This is the first and most important characteristic of a software developer. What are your contributions to open source projects? Do you have your own open source libraries that are used in the community? Are you writing code that is publicly available and used by others? If you have no answer to these questions, I see three possible reasons. First, you're embarrassed to share your code because it's crap. Obviously this is not a good sign. Not because your code might be bad, but because you're not brave enough to recognize it and evolve. In our teams we pay great attention to qualitycode and most of our new team members are surprised by our high quality standards. You will be surprised too. The question is whether you can develop or give up. If you have not shared your code before and have never handled negative feedback, you will not be able to feel comfortable in our projects, where the quality requirements are very high. The second possible reason is that you work nine to five for food, without passion. In fact, no one admits to this. I often hear things like “my company doesn’t pay me to contribute to open source projects, and I want to spend time with my family at home.” In modern software development, most of the code we work with is open source - libraries, frameworks, tools, etc. Almost everything you use in your commercial project is open source. By paying you a salary, your employer has already contributed to open source products because you actively use them. The problem is that you are not interested in being more active and contributing to open source projects. I see this as a lack of passion and motivation. Will you be an effective developer in our projects? Unlikely, because our management system relies on self-motivation . The last possible reason is that you don’t know what to write and what project to develop into, which means a lack of creativity. As I noted above, almost everything we use today is open source. And these tools are full of bugs, a lot of unrealized functionality. At the same time, don't you see any way to improve them? Don't you know what could be done better? Can't you at least find a report and fix one bug in the product that you use every day? This means you won't be able to find ways to improve our products either, since we rely on your ability to find problems creatively . Therefore, if your GitHub account is empty and your CV does not contain the line “actively involved in the development of the Linux kernel” (and why not?), I instantly lose interest. On the other hand, when I see a 100+ star project on your GitHub, I get excited and am ready to offer more payment. Location It is a common practice to pay more to those who live in more expensive countries. When I receive resumes from San Francisco, the asking rates are $70+ per hour. The same skills and experience costs $15-20 for Karachi. The reason is that the cost of living in the US is much higher than in Pakistan. However, this reason is illogical to me. If you drive a more expensive car, do we have to pay you a higher salary ?? Same with your location. You have chosen your country of residence. You enjoy all the benefits of a developed country and pay for it. It's your choice. You decided to spend more money for quality of life - what does this have to do with me? Do you want to pay $30 for lunch? Become a better developer. Until then, buy a hot dog for a couple bucks. Simply saying, “I’m already here and my lunch costs $30” is not an argument. Accordingly, if you live in a more expensive place, less money remains in your pocket. For us, this means that $100 will motivate a programmer from Karachi much more than the same $100 will motivate the same person if he lived in San Francisco. Therefore, we prefer to work with people whose costs are lower. Our money works better this way. Reputation on StackOverflow.com We all know that there are very few people on StackOverflow, even surprisingly few people who actively contribute to it. If your profile is empty (or if you don't have one), then it's clear that you 1) have no questions to ask, 2) you have nothing to answer. First, if you don’t ask anything there, you don’t grow. Your learning process stopped at some point, perhaps after you got an office job . Or maybe you're too shy to ask? Or are you unable to describe your questions accurately enough? Or maybe your questions already have answers? It's sad either way. Second, if you don’t answer, it means you simply have nothing to say. In most cases, this means that you are not solving complex and unique problems. You simply write known components together with others and receive your check. I often hear that people solve most of their problems by asking questions of the colleagues sitting next to them in the office. They say they simply don't need StackOverflow (or other similar resources, if they exist) because their team is so good that you can always get an answer to any question. It's good for the team, but bad for you. Why? You don't have the important skill of finding an answer on the public Internet. In our projects we do not encourage any horizontal communication between programmers, and you will not be able to get help from anyone. You will be on your own and you will fail because you are used to getting help from the seniors in your office . StackOverflow is not just an indicator of how smart you are and how many votes you have for the best joke about programmers . This is proof that you can get answers to questions by talking to people you don't know. This is a very important skill. Work experience badge “I wrote Java for 10 years!” - So what? This number only means one thing to me - you managed to survive in some office for 10 years. Or maybe in several offices. You convinced someone that he should pay you for your 10 years in his building. Does this mean that you wrote something useful? Does this mean your code was perfect? Neither the first nor the second. Work experience is a false indicator. This can even work against you, in combination with other indicators outlined above. If your CV says that you just started programming 2 years ago and your GitHub and StackOverflow accounts are empty, there is a possibility that you will improve. You're just at the beginning of your career. However, if your CV says that you are a “10 year systems architect” with zero contributions to open source projects, that means you are either lying about 10 years or you are absolutely useless as an architect. My point is that “work experience” as an argument should be used very carefully. Only play this card if you have other advantages. Otherwise, keep it to yourself. Certificates. Oracle, Zend, Amazon, IBM, MySQL and others - these are the certificates I'm talking about. To get them you must pass an exam. Not easy, and not online. This is a real exam that is taken in certification centers where you will sit at a computer, with limited time, without books or access to the Internet, and answer questions. Humiliating enough for such a respected developer? Yeah. And there is also a very high probability of failure, which is also quite awkward. If you were able to pass the exams, then this is a very good sign. If you've done this a few times, great. Moreover, if you do not have certificates throughout your career, it is for one of the following reasons. First, you're afraid of failure. A serious certification can cost several hundred dollars (I paid over $700 for SCEA ) and you won't get it back if you fail. If you're afraid to lose, you're afraid to fight. This means that you will chicken out in real situations when real problems need to be solved. Second, you are not investing in yourself. This most likely means that you don’t want to change companies and prefer to find a cozy office where you could sit forever. I remember once telling my friend, “You will greatly improve your CV if you get this certificate.” He replied with a smile: “I hope I don’t need a CV. I like this company." This approach is good for the company you work for, but it definitely works against you. In my experience, the best team playersthese are those who work for themselves. Healthy individualism is key. If your main goal is to get something for yourself (money, reputation, skills, knowledge) - you will be very effective in our projects. The presence of certificates in your profile is an indicator of the healthy individualism that we are looking for. Diversity of skills. The more technologies or programming languages ​​you know, the less you are worth. I'm not saying it's impossible to be an expert in many things at once - it's absolutely possible. But let me give you a pragmatic reason why you shouldn't do this: competition. There are thousands of Java7 programmers on the market - we can easily hire anyone we need. But there aren't many Hadoop programmers or XSLT designers. If you focus on a specific area and are an expert in it, your chances of finding a job are lower, but your rate will be higher. We tend to pay more to highly specialized specialists, mainly because we have no choice. If the project we are working on requires a Lucene expert, we will find the right person and do our best to bring him on our team. Doing our best, in most cases, means increasing pay. So, when I hear that you have experience in MySQL, PostgreSQL, Oracle and SQLite, I understand that you know very little about databases. Speeches and Publications badge Obviously, having a blog (about programming, not about your favorite cat) is a positive factor. It's even better if you speak at conferences from time to time. On blogs, I pay attention to the number of comments that people leave on your articles. If it's a conference, the most significant criterion is how hard it is to get into the number of speakers. Both blog articles and presentations make you more valuable as a specialist. Mainly because these things show that some people have already appreciated your work and your talent. And this is not just one programmer, but a group of programmers and engineers. This means that we can also rely on your opinion. In addition, if you write and post your work regularly, you already have an important skill/talent - you can present your ideas in a “digestible” format. In our projects, we do not encourage informal communications and use a ticket system. In these tickets you will explain your ideas, questions and considerations in a way that others can understand. Without the skills to present ideas, you will not be able to survive in a project. By the way, some developers even file patents in their own names - why didn’t you do this? Or maybe publish a book? Why not? Previous employer I usually don't pay much attention to this section of your CV. Our management model is so differentfrom everything you could see anywhere, that it doesn’t matter how many times you were fired or how high your position was in your company. Even if your title is "Twitter CTO" it means nothing to me. My experience tells me that the larger the company and the higher your position in it, the further away you are from the source code and from real technical solutions. VPs and CTOs spend most of their time in meetings and dealing with internal politics . I'm more interested in "What have you been doing" in recent years than "Where have you been doing" it or "What were you called" while you were doing it. Education BSc, MSc, PhD.. is it important? Don't think. Education is very similar to “Previous Employment” listed above. It doesn't really matter where you spent the five years after school. What matters is what you did at that time. If you have nothing to say about your activity as a student, then what does the name of your university tell me? Of course, if it's Stanford or MIT, then it's a completely different matter. In this case, I understand that you passed their final exams and managed to find money to study there. This is a good sign and I will definitely offer a higher bid. But if you are a graduate from nowhere (like my university), then keep this information to yourself. Paying $100+ per hour, we are happy to pay an expert who owns several open source products, has a rating on StackOverflow of over 20k, has certificates, articles, presentations or even patents. We pay $50+ to a professional programmer who owns an open source project or is an active participant in such a project, has a rating on StackOverflow of more than 5k, writes about software development, and holds certificates. We pay $30+ for a programmer who regularly contributes to open source projects, is active on StackOverflow, and has multiple certifications. We pay $15+ to everyone else. Don't get me wrong and don't take these numbers personally. These rates are an assessment metric of your professional level, not of you as an individual. In addition, the level is not static, it changes every day and everything is completely in your hands. I am writing this article mainly to motivate you to grow. All of these criteria apply to new members of our teams. Once you start writing code, we measure your productivity and you can get a completely different pay, see how we calculate hourly rates . By the way, the illustrations for the post were created by Andreea Mironiuc . https://www.youtube.com/watch?v=GS45LzE3LPQ
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION