What to do to get normal money and work in comfortable conditions as a programmer

This post grew out of comments to one article here on Habré. Quite an ordinary comment, except that several people said at once that it would be very good to issue it in the form of a separate post, and MoyKrug did not even wait for this published this very comment separately in his group in VK with a nice preface

Our recent publication with a report on salaries in IT for the first half of this year gathered an incredible amount of comments from Habr users. They shared opinions, observations and personal stories, but we liked one of the comments so much that we decided to publish it here.

Therefore, I finally gathered my strength and wrote a separate article, revealing and substantiating my thoughts in more detail.

What to do to get normal money and work in comfortable conditions as a programmer

Sometimes in articles and comments where the income of IT specialists is discussed, one can come across statements like “But where do you get such numbers from? I have been working for X for many years, and neither I nor my colleagues have ever seen such money ... ”.

To be honest, I could have written the same comment N years ago. I can't now 🙂

Having gone through different places of work, organizations and life situations, I personally formulated a quite simple set of rules for myself on the topic “what to do in order to get normal money and work in comfortable conditions in IT”. This article is not only about money. In some paragraphs, I touch on the topic of the opportunity to improve my professional level and learn new skills that are in demand, and by “good conditions” I mean not only a cozy office, technical equipment and a good social package, but first of all, the absence of insanity, peace of mind and whole nerves.

These tips are relevant primarily for software developers, but many points will apply to other professions. And, of course, the above applies primarily to the Russian Federation and other ex-USSR countries, although, again, some points will be relevant everywhere.

So, let's go.

Avoid state and semi-state offices and similar institutions per kilometer

Firstly, when financing an institution from the budget, the upper salary bar is limited by itself in a natural way - "there is no money, but you hold on." Even in state institutions and similar places, salaries are often tied to staffing tables. And it may turn out that the document says that the programmer receives as much as some clerk, and this cannot be changed in any way. Some managers, realizing the absurdity of this situation, semi-legally arrange IT specialists for one and a half or two rates, but this is rather an exception to the rule.

Secondly, if an institution does not operate in a free competitive market, then its leaders most likely will not have a goal to improve the quality and competitiveness of products and services (the goal will be only not to lower this quality below a certain value, so as not to get cap from the supervisory authorities), and accordingly, will not try to recruit the best employees and motivate them financially or otherwise.

What to do to get normal money and work in comfortable conditions as a programmer

Due to the lack of focus and motivation of the management on quality and results, as well as the fact that they spend, in fact, not their own, but other people's money, one can often observe such a phenomenon as attaching children / relatives / friends, etc. to "warm places" in the organization. However, it still needs to work somehow. Therefore, it may, firstly, turn out that a person who got there from the street will have to do work for himself and for that guy. And secondly, it is unlikely that he will be surrounded by highly qualified specialists, from whom much can be learned.

In the case of employment in a private company, but working for the state order, alas, you can encounter about the same thing. If a company receives orders and tenders because “everything is already under control”, then, in fact, we again come to a situation of “no competitors” with the corresponding consequences. And even if the tenders are played fairly, then you should not forget that the winner is the one who offers the lowest price, and it may well turn out that they will save first of all on developers and their salaries, because the goal will not be “to make very a good product”, but “make a product that at least somehow meets the formal requirements”.

And even when the office enters the free market and it has competitors, the thinking of the management and its attitude towards employees is not always rebuilt with corresponding sad consequences. The concept of "soviet management", alas, came from real life.

What to do to get normal money and work in comfortable conditions as a programmer

Sometimes it happens the other way around, that in some state-owned company even ordinary employees can receive very good money by local standards (for example, in the oil and gas sector). But, alas, the “soviet management” does not go away, and you can often stumble upon administrative insanity, such as “working day strictly from 8 am, deprivation of the bonus for being late for 1 minute”, endless writing of office papers and shifting responsibility, and an attitude like “we pay a lot, so please work even harder, we won’t pay for overtime” and “if you don’t like it, no one is holding you.”

If you are a programmer, then do not consider positions in offices for which software development is not an activity that brings the main income

... including all sorts of research institutes, design bureaus, engineering offices and factories, trading companies, shops, etc.

There is even a joke in one community

«If your position is not called “Senior Developer” or “Team Lead”, but “Engineer of the 1st category” or “Leading Specialist of the Information Technology Department”, then you have taken a wrong turn somewhere«

Yes, this is a joke, but there is some truth in every joke.

I define the criterion "main income earner" quite simply:
it or

  • the company actually earns most of its revenue from the sale of its IT products or services, or is engaged in the development of all this to order

or

  • The developed software is one of the most important or even the most important things that determine the consumer properties of a product or service.

Why such advice?

First, read the excellent post "13 surprises of a non-IT company", there are really well noticed many differences between non-IT companies. And if you worked in IT companies, but always observed points 5 to 13 described in that article, then this is already an occasion to think and take a closer look at the world around you and the labor market.

In “purely IT” companies, people directly related to software development (programmers, testers, analysts, UI / UX designers, devops, etc.) are the main driving force. It is their work that brings the business income. And now let's look at some "non-IT-company". They receive the main money from the resale of something, or from the provision of some “non-IT services”, or from the production of “non-IT products”. In this company, IT specialists are maintenance personnel, yes, they are needed to be able to work more efficiently (for example, through automation, automatic accounting, online order taking, etc.), but they do not bring direct income. And therefore, the attitude of the short-sighted leadership towards them will most likely be exactly the same - as to something for which accounts spend money.
This is very well stated in the article mentioned above:

The conceptual difference between an IT office and a non-IT office is, of course, that in an IT office you - being a programmer, tester, analyst, IT manager, and finally - are part of the revenue side of the budget (well, for the most part), and in a non-IT office - only only its expenditure item, and often one of the most noticeable. Accordingly, an appropriate attitude is built towards internal IT specialists - as towards some freeloaders, whom we, the business, are forced to pay out of our own pocket, and they also dare to want something for themselves.

Often the management of such a company does not understand anything at all in IT and software development, and because of this, firstly, it is difficult to convince them of the need for something, and secondly, the “creation of an IT department” itself may not happen. in the best possible way: a person is taken to the position of head of this department, whose skills the managers cannot adequately check. If he is lucky, then he will recruit a good team and set the right development vector. But if you are unlucky with it, then it may happen that the team seems to be developing something, and the product even seems to work, but in fact it boils in its own juice in isolation from the outside world, does not particularly develop itself, and really knowledgeable and talented people they don't stay there. Alas, I saw this with my own eyes.
How to identify this in advance, at the interview stage? There is a so-called Joel's test, however, it must be admitted that it is very superficial, and in fact there can be much more factors for verification and alarm bells, but this is a topic for a separate article.

What to do to get normal money and work in comfortable conditions as a programmer

I would like to say separate words about various engineering companies, production associations, scientific research organizations, design bureaus, design institutes and everything like that. There are several reasons “why you shouldn’t go there, or at least think very well before it” in my experience.

First, again, denseness and technological backwardness often reign there. Why is a separate question and will draw on such a good article, but people regularly speak out on this topic even here on Habré:

“I’ll tell you a terrible secret - embedded software is tested at least an order of magnitude less and worse than any shabby web server. And dinosaurs often write it, a debugger is for wimps, and “if the code compiles, then everything works.”
… I’m not kidding, unfortunately.” [from comments]

“Nothing surprising. According to my observations, many "hardware" believe that the production of a device is an art subject to the elite, but he can write the code for it himself, like that, on his knee. It's generally a trifle. It turns out a working quiet horror. They are very offended when they explain to them on their fingers why their code smells bad, because ... well ... they made a piece of iron, why, some kind of program. [from comments]

“From my experience in scientific work, I can say that when one to several people work on a task, it is out of the question to reuse the code. They write how it will turn out, the minimum features of the language are used, the majority does not know about version control systems. [from comments]

Secondly, everything again often rests on management and established traditions:

“The development of equipment according to statistics is most often a self-sustaining, self-financing Russian enterprise, with Russian customers, a Russian sales market and a Russian boss - a former engineer aged 50+, who also previously worked for a penny. Therefore, his thought is this: “I have been plowing all my life so that I pay some young man? Will be killed! Thus, such enterprises do not have a lot of money, and if they do, they will not be invested in your salary at all. [from comments]

And thirdly ... In such places, programmers and other engineers are often not separated. Yes, of course, a programmer can also be considered an engineer, and even the very concept of “software engineering” seems to hint. In both cases, people are engaged in intellectual work and the development of new entities, and in both cases certain knowledge, skills and mindset are required.

But ... the nuance is that in the current situation on the labor market, these categories are paid very differently. I'm not saying that this is how it should be, I myself think that this is wrong, but, alas, at the moment it is a fact: the salaries of "programmers" and other "engineers" can differ by one and a half to two times, and sometimes even more.

And in many engineering and near-engineering enterprises, the management just doesn’t understand “why should we pay twice as much for this”, and sometimes “what’s wrong with that, our Vasya the electronics engineer will write the code no worse” (and Vasya- then he doesn’t mind, even though he not a software developer).

In one of the discussions on the topic “the path of a programmer is difficult” with a respected jef239 once, in the comments, a phrase was heard from him like “Well, what’s wrong, we pay our people above the average salary engineer in St. Petersburg", although, in a good way, if the company appreciates and respects its employees, one should pay "... above the average salary programmer In Petersburg".

A very revealing picture, which a few years ago went to all sorts of process control systems in social networks, speaks for itselfWhat to do to get normal money and work in comfortable conditions as a programmer

Don't work with the military

I made this conclusion for myself, I will still be a student of the military department at the university 🙂

In fact, personally, I myself did not work in near-military offices and private firms as customers from this area, but my friends worked, and according to their stories, numerous folklore such as “There are three ways to do something - right, wrong, and military style” and “I will now gather a narrow circle of limited persons, relying on which I will figure it out properly and punish anyone!” did not appear out of nowhere.

What to do to get normal money and work in comfortable conditions as a programmer

In my case, interviews in such firms usually ended with the need to fall under the form of secrecy. Moreover, the interviewers swore that “the third form is a pure formality, it doesn’t mean anything, they don’t even ask about it, you can travel abroad without any problems at all,” but to the questions “If it doesn’t mean anything, then why does it exist and why to sign?" and “And what are the guarantees that, given the insanity that is happening around, one fine day the legislation will not change and everything will not be different?” no replies were received.

Don't be a "jack of all trades"

What to do to get normal money and work in comfortable conditions as a programmer

… it's like when you are both a programmer, and an administrator, and a network installer, and a hardware purchaser, and a cartridge refiller, and a DBA, and technical support, and a telephone operator. If you are doing everything at once in your place, then most likely you will not be an expert in each of these areas, which means that if you wish, you can be replaced by several students or juniors, who are not a problem to find even for little money. What to do? Choose a narrow specialization and develop in its direction.

Start exploring a more up-to-date stack

… if you work with legacy tools. It happens, for example, that a person writes in some Delphi 7 or ancient versions of PHP with no less ancient frameworks. I'm not saying that this is bad by default, after all, no one has canceled the "it works - don't touch" principle, but when the ancient stack is used not only to support old ones, but also to develop new modules and components, it makes you think about qualifications and the motivation of the development team, and whether the company needs good staff at all.

What to do to get normal money and work in comfortable conditions as a programmer

Sometimes the opposite situation happens: you support some legacy project based on some legacy technology, and you get quite good (perhaps because no one else wants to get into this swamp), but when for some reason the project or company dies, there is a big risk of being left with nothing, and returning to harsh reality can be very uncomfortable.

Do not work in small and medium-sized companies working for the domestic (Russian) market

What to do to get normal money and work in comfortable conditions as a programmer

Everything is pretty simple here. Companies operating internationally have an influx of money in foreign currency, and given current exchange rates, can afford to pay their developers good money. Companies working for the domestic market are forced to catch up with them, and while large and rich companies can afford to pay competitive salaries so as not to lose good specialists, small and medium-sized ones, unfortunately, do not always have such an opportunity.

Learn English. Even if you don't really need it right now

English for a modern IT specialist is a very useful thing: the vast majority of documentation, manpages, release notes, project descriptions, and everything else is written in English, top books and scientific papers are published in English (and not always are not immediately translated into Russian, and even more so, they are not always translated correctly), world-class conferences are held in English, the audience of international Internet communities of developers is hundreds of times larger than Russian-speaking ones, etc.

I will draw your attention to another fact, there are a huge number of companies with cool tasks and very tasty salaries, where you will not even be considered without knowing English. These are outsourcing companies, and integrators, and branches of international companies, and simply firms working on the international market. In many of them, you have to solve problems in the same team with foreign-speaking colleagues from other countries and often even interact directly with customers and their specialists. Thus, not having good English, you immediately deprive yourself of access to a significant part of the labor market, and the part in which you can often find very interesting projects for very good money.

Also, knowledge of the language makes it possible to work on international freelance exchanges and work remotely for foreign companies. Well, and the opportunity to start a tractor and relocate to another country, especially considering that in our time even people who have not thought about this at all have begun to do this.

Don't be afraid of galleys

Sometimes you can find opinions that the so-called "galleys" (companies engaged in consulting, outsourcing development, or selling the competencies of their specialists as outstaff) suck, but product companies are cool.

I do not agree with this opinion. At least two places of work where I worked for quite a long time were these same “galleys”, and I can say that the working conditions, salary level and attitude towards employees there were very good (and I have nothing to compare with ), and there were very nice and qualified people around.

Do not think that if everything is not very good at your current place, then it is the same everywhere

Probably, psychologists will someday investigate this phenomenon and give it some name, but for now it must be recognized that this phenomenon really exists: sometimes people work in their place, which they are not very happy with, but they think that “yes, probably everywhere so "and" what awl for soap to change. Let me just say: no, not everywhere. And to verify this, we proceed to the following points.

Go to interviews

… just to get interview experience, requirements and salary levels in different places. No one will stone you if they end up with an offer and you politely decline it. But you will gain the experience of passing interviews (this is important, yes), which can be very useful to you at one moment, listen to what other companies are doing in your city, find out what knowledge and skills employers expect from candidates, and most importantly, what kind of money they willing to pay for it. Feel free to ask questions about the organization of processes within the team and the company as a whole, ask about working conditions, ask to show you the office and workplaces.

What to do to get normal money and work in comfortable conditions as a programmer

Study the market and know your price

Explore Headhunter, Moykrug, and similar resources to get a rough idea of ​​how much what you know and do is really worth.

Don't be intimidated by the big numbers in the salary offer, even if it turns out that for the same thing that you are currently doing, some company promises to pay you much more than what you currently have. It must be borne in mind that IT is one of the few industries in our country where it has developed so that if a company writes in the job description that it is ready to pay a specialist 100-150-200 thousand, then most likely it is really ready and will be.

Don't underestimate yourself

See "Imposter Syndrome", which on Habré has already been devoted to articles here more than once. Do not think that you are somehow worse, less qualified or inferior to other applicants in some way. And even more so, based on these facts, it is not necessary to ask for a salary below the average market - on the contrary, _always_ lay the amount at least a little higher than the average, but at the same time, let's clearly understand that we are ready to discuss it.

Feel free to negotiate with management for a raise

No need to sit quietly and wait for someone from above to have an insight and raise your salary on their own. Maybe insight will come, maybe it won't.

Everything is very simple here: if you think that you are not paid enough, tell the management about it. The reasons “why I think that I should be paid more” can not even be invented very much, they can be anything from “during these N years of work I have grown as a specialist and now I can do more complex tasks and work more efficiently”, to “in other companies offer so much for this job.”

In my case, this has always worked. Sometimes right away, sometimes after a while. But when one of my colleagues, tired of lack of money, found a new job and put the application on the table, on the other side of the table they were very surprised and asked, “Why didn’t you come to us about the increase?”, And for a long time they persuaded him to stay , offering even more money than in the new offer.

Move or go remote

If everything rests on a small number of vacancies in the city (in other words, if there are no “other places” where people with your qualifications are required, or it’s not so easy to get there) ... Then increase your skill and move to another city , if possible. I personally know people who among the millionaires moved to St. Petersburg and Moscow immediately with a twofold increase in income, even when moving to a lower position.

Again, do not be fooled by myths like “in the capitals they pay more, but you also have to spend much more, so no profit”, read the comments on this article here, there are many opinions and stories on the subject.

Study the labor market of large cities, look for companies offering a relocation package.

Or, if you are already an established and experienced specialist, try remote work. This option requires certain skills and good self-discipline, but for you it can be very suitable and profitable.

That's all for now. I want to say again - this is my personal opinion and my experience, which, of course, is not the ultimate truth and may not coincide with yours.

Materials on the topic:

13 surprises for a non-IT company
Joel's test
Don't confuse software development with programming

Source: habr.com

Add a comment