Я уволился из Яндекс.Маркета, отработав там почти 15 месяцев. Сегодня я хочу поделиться своим взглядом на работу в Яндекс.Маркете и рассказать о причинах ухода. Disclaimer: эта статья бесполезна для тех, кто работает или работал в Маркете; она предназначена в первую очередь для тех, кто лишь планирует туда пойти. А ещё Яндекс.Маркет – это не Яндекс, но очень близко. Поэтому всё, о чём я буду говорить, в первую очередь относится к Маркету, но значительная часть из этого точно так же может быть применена к большому Яндексу. Я ни в коем случае не претендую на объективность, это моё личное мнение. Я никого не отговариваю от трудоустройства в Яндекс. Наоборот, это отличный вызов для любого разработчика и, если вы в состоянии попасть в Компанию, то вам однозначно стоит попробовать. Моей главной проблемой стали завышенные ожидания. Я наивно полагал, что Яндекс как-то значимо отличается от других работодателей. Увы, большой разницы я не увидел.  Я приехал в Яндекс.Маркет, в Москву из Ярославля. Компания предлагает очень заманчивый релокационный пакет, от которого практически нереально отказаться, особенно кандидатам из провинции: билеты, отель на первое время, риелтор, оплата первого месяца аренды, перевозка вещей, подъёмные. Это же твой реальный шанс переехать в столицу и устроиться на такую крутую работу! Про то, что ты, по сути, попадаешь в рабство на один год, в момент получения оффера совсем не думаешь, а надо. Моя релокация стоила как вся моя зарплата за 4 месяца. В такой ситуации отработать меньше года, пока Компания не спишет твой долг, ты уже не можешь. Я бы рекомендовал не брать релокационный бонус, самостоятельно арендовать номер в отеле и самостоятельно искать жильё в Москве. Либо принять правила игры и позволить Яндексу всё это сделать за вас. Яндекс платит ниже рынка. В принципе, все это знают и понимают. И, когда вы будете устраиваться в Компанию, вас постараются максимально продавить по зарплате. Вам будут рассказывать о перспективах, о том, как хорошо и классно работать в Яндексе, о ДМС, о компенсации питания, о RSU и полугодовых премиях, а потом намекнут, что некоторые секции собеседования вы прошли не так уж шикарно, поэтому запрашиваемую вами сумму предоставить не могут, но могут дать немного меньше. И это «немного» будет зависеть только от вас: вы либо изначально попросите с хорошим запасом, либо попытаетесь отстоять свои пожелания… Многие идут в Яндекс за строчкой в резюме, поэтому они готовы подвинуться в зарплате. Яндекс – это совсем не Microsoft, Google или Amazon, но тем не менее Яндекс постоянно пытается сравнивать себя с крупными зарубежными компаниями и примерять на себе их наработки. Одно только желание загнать всех в общий монорепозиторий чего стоит. И никому нет дела, что пользы от этого монорепозитория чуть меньше, чем ноль, и что этот переход ломает устоявшуюся инфраструктуру, привносит новые ошибки, блокирует продуктовую разработку, и в конечном итоге ухудшает качество сервисов. Это чисто политическое решение сверху: у Microsoft есть монорепа – у нас тоже будет! Я не являюсь противником монорепозиториев как таковых, сама идея интересная и может принести определенный профит. Но как часто бывает – хорошие идеи разбиваются о скалы отвратительной реализации… и эффективных менеджеров. Только представьте: в один общий репозиторий мы положим код на самых разных языках (C++, Python, Go, Java) и для всего этого напишем свою новую универсальную систему сборки. Пусть Java-разработчики компилируют плюсовый код, пусть забудут про всё, что есть в Maven и Gradle, и пусть работать это будет только на Linux… Следующая проблема – обилие собственных «велосипедов». В Яндексе я впервые так явно столкнулся с проблемой «фатального недостатка»: на любое внешнее решение или технологию мы напишем свой in-house вариант. В Компании работает очень много действительно крутых разработчиков, которые могут практически всё, что угодно. Но вот стоит ли тратить их усилия, чтобы написать свою версию Кафки или пародию на Docker и Kubernetes? Как разработчик вы будете вынуждены постоянно разбираться в этих внутренних велосипедах, абсолютно не развиваясь в релевантных для внешнего рынка направлениях. Выйдя через несколько лет за пределы Яндекса, вы рискуете оказаться в неприятной ситуации, когда ваши умения практически ничего не стоят. Следующее, с чем придётся столкнуться, это отрицание и обнуление всего вашего предыдущего опыта. Эффективным менеджерам внутри не важно, чем ты занимался раньше, и что ты умеешь. Тебя обязательно засунут на проект, где у тебя меньше всего опыта, а область, где у тебя есть знания, отдадут человеку, который в ней не разбирается. Матрицы компетенций? Нет, здесь так не принято. Запомните эту фразу: «Здесь так не принято. Тут так не принято. В Яндексе так не принято». Вы будете слышать разные её вариации очень часто. Здесь считается нормальным посадить senior разработчика «грепать» логи с нескольких хостов, потому что ELK-стек not invented here. Понятное дело, что велосипедостроение есть практически везде. Проблема в том, что в Яндексе оно возведено практически в абсолют. Ещё одна из проблем – это переработки. За это никто не платит, это никак не регламентируется, но всеми подразумевается. Со стороны руководства это звучит примерно так: мы дали вам гибкий график и возможность удалённой работы, поэтому вы обязаны… Разработчики каждого сервиса сами отвечают за его функционирование в production’е. Для этого вводятся так называемые недельные факап-дежурства. Обычно, существенная часть доработок выкатывается во второй половине дня, и соответственно бОльшая часть инцидентов случается поздно вечером. А ночью ты их чинишь. За просто так, за бесплатно – ни денег, ни отгулов. А утром, будь добр, иди на работу. Отказаться нельзя – здесь так не принято. В итоге получается, что ты «вджобываешь» по 10-12 часов в день, в том числе и на выходных. За попытки как-то изменить этот процесс тебя назовут токсичным и нелояльным Компании сотрудником. Это поставит крест на твоём карьерном и зарплатном росте. Такая организация рабочего процесса порождает профессиональное выгорание и текучку кадров. Ни на одном из предыдущих моих мест работы не было такой текучки, как в Яндекс.Маркете. Рабочих рук всегда не хватает, поэтому тобой будут затыкать все дыры: сегодня ты здесь, завтра там. Эффективные менеджеры считают, что все Java-разработчики абсолютно универсальны, смена контекста ничего не стоит, а люди просто обязаны на новом проекте перформить так же хорошо, как и на предыдущем. С одной стороны, смена проекта не так уж плоха: она позволяет не утонуть в болоте перекладывания json’ов из одного сервиса в другой, но реализовано это традиционно из рук вон плохо – в ультимативно-приказном порядке, прямо здесь и сейчас. Если у тебя остались нерешённые задачи (в том числе поддержка) по предыдущему проекту, угадайте, когда вы будете их делать? Правильно – вечером, ночью, на выходных. И ещё, если вам предложили подумать о переходе в другую команду, то вы не можете отказаться. Даже если ваш руководитель говорит об обратном. Любой отказ делает вас человеком нелояльным Компании со всеми вытекающими. Решения руководства обсуждению не подлежат. Даже не думайте критиковать и подвергать сомнению архитектуру системы, созданную пять-шесть лет назад людьми, которые теперь являются вашими руководителями. Особенно если критика конструктивна, а проблема мешает дальнейшему развитию сервиса. Не надо грести против течения. Здесь так не принято. Воплощение в жизнь любой стоящей идеи будет требовать от вас колоссальных усилий и, разумеется, переработок. Заниматься техническом долгом? Здесь так не принято. Текучка кадров, частые смены команды и желание всё сделать побыстрее приводят к тому, что качество кода оставляет желать лучшего. Иногда код настолько паршивого качества, что вызывает лишь недоумение: как все эти классные люди написали такое? Системно этим заниматься никто не хочет: нет ни статического анализа, ни метрик, ни подсчёта code coverage. Нет, если хочешь, то, пожалуйста, сделай. Когда? Ну вы поняли… А ещё очень много проектов, которые собираются и запускаются только на Linux. Если у тебя Mac, то есть хоть какая-то надежда, а вот с Windows её вообще нет. И ладно бы это был плюсовый код, но что мешает на Java разрабатывать кроссплатформенные решения? Оказывается, многие просто этого не умеют. Ведь этого не спрашивают на интервью. И даже не надейтесь, что на "финале" кто-нибудь честно скажет вам, что ноутбук нужно брать только на Linux. Премию по итогам ревью заплатят, но, чтобы получить хорошую оценку, придётся играть по всем выше озвученным правилам с переработками и прочим. При этом недостаточно просто хорошо работать, нужно ещё уметь красиво преподнести свои достижения. Я прошёл три ревью и три раза получил оценку "выше ожидаемого", но повышения грейда мне это не принесло. На вопрос почему, мне сказали, что за всё это время у меня не было значимых задач, поэтому grade-up не будет. Значимых задач, Карл! И здесь ты попадаешь в замкнутый круг: задачи тебе приходят сверху, и ты их не выбираешь. Даже, если задача дерьмо, ты будешь её делать. Отказ клеймит тебя человеком, нелояльным Компании. Попытка что-то доказать делает тебя токсичным, что тоже клеймо. Ну вы поняли… Я работал над Брингли, который закрыли. Всё, что мы сделали за несколько месяцев, помножили на ноль. Неудачу, по сути, списали на команду разработчиков и тестировщиков. Людям понизили оценки на ревью, хотя обещали этого не делать. Естественно, часть людей уволилась после этого. Но не я, я не мог, поскольку мой год ещё не закончился... В Яндексе есть проблема с наймом. Оценивается, в основном, умение решать алгоритмические задачки. Это конечно хорошо, но в большинстве случаев абсолютно бесполезно в повседневной работе. Нанимать людей под конкретные задачи или с определенным набором практических умений и навыков здесь не принято. Нужен разработчик, хорошо знающий MS SQL Server? Нанять его со стороны? Пфф, да ни за что! Лучше мы кого-нибудь из своих на этот проект засунем, даже если у него нет опыта работы с MS SQL. Развивать своих сотрудников Компания так же не заинтересована. Никаких индивидуальных планов развития – здесь так не принято. Можешь заниматься чем угодно, но в свободное от работы время. За время моей работы Компания потратила на моё обучение ровно ноль. Более того, все мои попытки поучиться и попасть на профильные конференции были заблокированы руководством. Сначала я был на испытательном сроке, во время которого Компания не оплачивает участие сотрудников в конференциях. Затем мне заявили (в июне), что бюджет на текущий (2019) год исчерпан. В 2020-м я смог выбить билет на JPoint, его оплатили, но потом из-за пандемии Яндекс аннулировал участие сотрудников в конференциях. Ничего личного, просто политика. Угадайте, как я узнал, что мой билет на JPoint аннулировали? Правильно, от организаторов JPoint. Яндекс же не считает нужным сообщать о подобных вещах своим сотрудникам. Не хотелось бы, чтобы эта статья выглядела как излияния обиженного сотрудника. Идя в Яндекс.Маркет, я понимал, что это не навсегда и даже не надолго. Правда по окончанию первого года работы я рассчитывал на повышение ЗП и планировал ротироваться в Яндекс.Облако, но, увы, первого не случилось, а второго уже не захотелось. Тем не менее, если бы сейчас я мог вернуться во времени назад, то всё равно пошёл бы работать в Яндекс.Маркет. Это хороший опыт в плане развития soft skills и заведения новых знакомств с очень крутыми разработчиками. Для меня работа в Яндекс.Маркете не стала работой мечты. Возможно, для вас она такой станет. Дерзайте. И да пребудет с вами Java. Java Developer, Open Source Enthusiast