The dark side of work in Yandex.Market
I quit Yandex.Market, having worked there for almost 15 months. Today I want to share my view on work in Yandex.Market and talk about the reasons for leaving.
Disclaimer : This article is useless for those who work or worked in the Market; it is intended primarily for those who are just planning to go there. And Yandex.Market is not Yandex, but very close. Therefore, everything that I will talk about first of all relates to the Market, but a significant part of this can be applied in the same way to the big Yandex.
In no case do I pretend to be objective, this is my personal opinion.
I do not discourage anyone from working in Yandex. On the contrary, this is a great challenge for any developer, and if you are able to get into the Company, then you definitely should try.
My main problem was high expectations. I naively believed that Yandex was somehow significantly different from other employers. Alas, I did not see much difference.
I came to Yandex.Market, to Moscow from Yaroslavl. The company offers a very attractive relocation package, which is almost impossible to refuse, especially to candidates from the provinces: tickets, a hotel for the first time, a realtor, payment of the first month of rent, transportation of things, lifting. This is your real chance to move to the capital and get such a cool job! About the fact that you, in fact, fall into slavery for one year, at the time of receiving the offer you do not think at all, but you need to.
My relocation was worth all my salary for 4 months. In such a situation, you can’t work out less than a year until the Company writes off your debt. I would recommend not taking a relocation bonus, renting a hotel room on your own and looking for accommodation in Moscow yourself. Or accept the rules of the game and let Yandex do all this for you.
Yandex pays below the market. In principle, everyone knows and understands this. And, when you get a job at the Company, they will try to push you as much as possible on your salary. They will tell you about the prospects, about how to work well and cool in Yandex, about VHI, about food compensation, about RSU and six-month bonuses, and then they will hint that you didn’t go through some sections of the interview so smartly, therefore, to provide the amount requested by you they can’t, but they can give a little less. And this “little” will depend only on you: you either initially ask with a good supply, or try to defend your wishes …
Many go to Yandex for a line in the resume, so they are ready to move in salary.
Be like FAANG
Yandex is not at all Microsoft, Google or Amazon, but nonetheless Yandex is constantly trying to compare itself with large foreign companies and try on their own achievements. Just the desire to drive everyone into a common mono-repository is worth what. And no one cares that the benefits of this mono-repository are slightly less than zero, and that this transition breaks the established infrastructure, introduces new errors, blocks product development, and ultimately degrades the quality of services. This is a purely political decision from above: Microsoft has a monorepa – we will have it too!
I am not an opponent of monorepositories per se, the idea itself is interesting and can bring a certain profit. But as often happens – good ideas are broken on the rocks of disgusting implementation … and effective managers.
Just imagine: in one common repository we will put the code in a variety of languages (C ++, Python, Go, Java) and for all this we will write our new universal build system. Let Java developers compile the plus code, let them forget everything that is in Maven and Gradle, and let it work only on Linux …
The next problem is the abundance of their own “bicycles”. For the first time in Yandex, I so clearly faced the problem of a “ fatal flaw ”: we will write our in-house version for any external solution or technology. The company has a lot of really cool developers who can do almost anything. But is it worth the effort to write your version of Kafka or a parody of Docker and Kubernetes?
As a developer, you will have to constantly understand these internal bicycles, absolutely not developing in areas relevant to the foreign market. Having gone beyond Yandex within a few years, you run the risk of being in an unpleasant situation when your skills are practically worthless.
The next thing you have to face is the denial and nullification of all your previous experience. Effective managers inside do not care what you did before, or what you can do. They will definitely put you on a project where you have the least experience, and the area where you have knowledge will be given to a person who does not understand it. Competency matrices? No, it’s not accepted here.
Remember this phrase: “This is not accepted here. It’s not accepted here. Yandex doesn’t accept that. ” You will hear its different variations very often. It is considered normal here to put the senior developer to “grab” logs from several hosts, because the ELK stack is not invented here.
It is clear that cycling is almost everywhere. The problem is that in Yandex, it is raised almost to the absolute.
Another problem is recycling. Nobody pays for it, it is not regulated in any way, but it is implied by everyone. From the management side, it sounds something like this: we gave you a flexible schedule and the ability to work remotely, so you must …
The developers of each service themselves are responsible for its functioning in production. For this, the so-called weekly fakap duty is introduced. Typically, a substantial portion of completions rolls in the afternoon, and, accordingly, used about most of the incidents happen late at night. And at night you repair them. For just that, for free – no money, no time off. And in the morning, be kind, go to work. You can’t refuse – it’s not accepted here.
As a result, it turns out that you “work” for 10-12 hours a day, including on weekends. For attempts to somehow change this process, you will be called a toxic and disloyal Company employee. This will put an end to your career and salary growth.
Such an organization of the work process generates professional burnout and staff turnover. None of my previous workplaces had such a turnover as in Yandex.Market.
There are always not enough working hands, so all the holes will plug you: today you are here, tomorrow there. Effective managers believe that all Java developers are absolutely universal, changing the context costs nothing, and people simply have to perform on a new project as well as on the previous one.
On the one hand, changing a project is not so bad: it allows you not to drown in the swamp of shifting json from one service to another, but this is traditionally implemented very poorly – in an ultimatum-ordered order, right here and now. If you still have unresolved tasks (including support) for the previous project, guess when you will do them? That’s right – in the evening, at night, on the weekend.
And yet, if you were asked to think about moving to another team, then you cannot refuse. Even if your supervisor says otherwise. Any refusal makes you a person disloyal to the Company in all its consequences.
Legacy and leadership
Management decisions are not negotiable. Don’t even think about criticizing and questioning the architecture of the system created five to six years ago by the people who are now your leaders. Especially if the criticism is constructive, and the problem hinders the further development of the service. No need to row against the tide. It’s not accepted here.
Realization of any worthwhile idea will require tremendous efforts and, of course, processing from you.
Engage in technical debt? It’s not accepted here.
The staff turnover, frequent team changes and the desire to do everything faster lead to the fact that the quality of the code leaves much to be desired. Sometimes the code is of such lousy quality that it causes only bewilderment: how did all these cool people write this? Nobody wants to do this systematically: there is no static analysis, no metrics, no code coverage calculation. No, if you want, then please do it. When? Well, you understand …
And there are a lot of projects that are built and run only on Linux. If you have a Mac, then there is at least some hope, but with Windows it does not exist at all. Well, it would have been plus code, but what prevents Java from developing cross-platform solutions? It turns out that many simply do not know how. After all, this is not asked in an interview. And do not even hope that at the “finale” someone honestly tells you that the laptop should be taken only on Linux.
Review and Prizes
The prize based on the results of the review will be paid, but in order to get a good mark, you will have to play according to all the above-stated rules with reworking and other things. It’s not enough just to work well, you still need to be able to beautifully present your achievements.
I went through three reviews and three times got a rating of D (higher than expected), but it did not bring me an increase in the grade. When asked why, I was told that for all this time I did not have significant tasks , so there will be no grade-up. Significant tasks, Carl!
And here you fall into a vicious circle: tasks come to you from above, and you do not select them. Even if the task is crap, you will do it. Failure stigmatizes you as a person disloyal to the Company. Trying to prove something makes you toxic, which is also a stigma. Well, you understand …
I worked on Bringley, which was shut down. Everything that we did in a few months was multiplied by zero. Failure, in fact, was attributed to a team of developers and testers. People lowered their ratings for the review, although they promised not to. Naturally, some people quit after that. But not me, I could not, because my year has not yet ended …
Hiring, training, personal growth
Yandex has a hiring problem. Assessed, mainly, the ability to solve algorithmic problems. This is certainly good, but in most cases it is absolutely useless in everyday work. Hiring people for specific tasks or with a specific set of practical skills is not accepted here. Need a developer who knows MS SQL Server well? Hire it from the outside? Pff, for no reason! It’s better if we put one of our own into this project, even if he has no experience with MS SQL.
The company is also not interested in developing its employees. No individual development plans – this is not accepted here. You can do anything, but in your free time.
During my work, the Company spent exactly zero on my training. Moreover, all my attempts to learn and get to specialized conferences were blocked by the leadership. At first I was on a trial period, during which the Company does not pay for the participation of employees in conferences. Then they told me (in June) that the budget for the current (2019) year had been exhausted. In 2020, I was able to get a ticket for JPoint, it was paid, but then, due to a pandemic, Yandex canceled the participation of employees in conferences. Nothing personal, just politics.
Guess how I found out that my JPoint ticket was canceled? That’s right, from the organizers of JPoint. Yandex does not consider it necessary to report such things to its employees.
I would not want this article to look like an outpouring of an offended employee. Going to Yandex.Market, I realized that this would not be forever or even for long. True, at the end of the first year of work, I counted on increasing the RFP and planned to rotate in Yandex.Cloud, but, alas, the first did not happen, and the second did not want to.
Nevertheless, if I could go back in time now, I would still go to work at Yandex.Market. This is a good experience in terms of developing soft skills and making new acquaintances with very cool developers.
For me, working at Yandex.Market did not become a dream job. Perhaps it will become so for you. Go ahead. And may Java be with you.