Я уволился из Яндекс.Маркета, отработав там почти 15 месяцев. Сегодня я хочу поделиться своим взглядом на работу в Яндекс.Маркете и рассказать о причинах ухода.
Disclaimer: эта статья бесполезна для тех, кто работает или работал в Маркете; она предназначена в первую очередь для тех, кто лишь планирует туда пойти. А ещё Яндекс.Маркет – это не Яндекс, но очень близко. Поэтому всё, о чём я буду говорить, в первую очередь относится к Маркету, но значительная часть из этого точно так же может быть применена к большому Яндексу.
Я ни в коем случае не претендую на объективность, это моё личное мнение.
Я никого не отговариваю от трудоустройства в Яндекс. Наоборот, это отличный вызов для любого разработчика и, если вы в состоянии попасть в Компанию, то вам однозначно стоит попробовать.
Моей главной проблемой стали завышенные ожидания. Я наивно полагал, что Яндекс как-то значимо отличается от других работодателей. Увы, большой разницы я не увидел.
Релокация
Я приехал в Яндекс.Маркет, в Москву из Ярославля. Компания предлагает очень заманчивый релокационный пакет, от которого практически нереально отказаться, особенно кандидатам из провинции: билеты, отель на первое время, риелтор, оплата первого месяца аренды, перевозка вещей, подъёмные. Это же твой реальный шанс переехать в столицу и устроиться на такую крутую работу! Про то, что ты, по сути, попадаешь в рабство на один год, в момент получения оффера совсем не думаешь, а надо.
Моя релокация стоила как вся моя зарплата за 4 месяца. В такой ситуации отработать меньше года, пока Компания не спишет твой долг, ты уже не можешь. Я бы рекомендовал не брать релокационный бонус, самостоятельно арендовать номер в отеле и самостоятельно искать жильё в Москве. Либо принять правила игры и позволить Яндексу всё это сделать за вас.
Уровень дохода
Яндекс платит ниже рынка. В принципе, все это знают и понимают. И, когда вы будете устраиваться в Компанию, вас постараются максимально продавить по зарплате. Вам будут рассказывать о перспективах, о том, как хорошо и классно работать в Яндексе, о ДМС, о компенсации питания, о RSU и полугодовых премиях, а потом намекнут, что некоторые секции собеседования вы прошли не так уж шикарно, поэтому запрашиваемую вами сумму предоставить не могут, но могут дать немного меньше. И это «немного» будет зависеть только от вас: вы либо изначально попросите с хорошим запасом, либо попытаетесь отстоять свои пожелания…
Многие идут в Яндекс за строчкой в резюме, поэтому они готовы подвинуться в зарплате.
Быть как FAANG
Яндекс – это совсем не 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’ов из одного сервиса в другой, но реализовано это традиционно из рук вон плохо – в ультимативно-приказном порядке, прямо здесь и сейчас. Если у тебя остались нерешённые задачи (в том числе поддержка) по предыдущему проекту, угадайте, когда вы будете их делать? Правильно – вечером, ночью, на выходных.
И ещё, если вам предложили подумать о переходе в другую команду, то вы не можете отказаться. Даже если ваш руководитель говорит об обратном. Любой отказ делает вас человеком нелояльным Компании во всеми вытекающими.
Legacy и руководство
Решения руководства обсуждению не подлежат. Даже не думайте критиковать и подвергать сомнению архитектуры системы, созданную пять-шесть лет назад людьми, которые теперь являются вашими руководителями. Особенно если критика конструктивна, а проблема мешает дальнейшему развитию сервиса. Не надо грести против течения. Здесь так не принято.
Воплощение в жизнь любой стоящей идеи будет требовать от вас колоссальных усилий и, разумеется, переработок.
Заниматься техническом долгом? Здесь так не принято.
Качество кода
Текучка кадров, частые смены команды и желание всё сделать побыстрее приводят к тому, что качество кода оставляет желать лучшего. Иногда код настолько паршивого качества, что вызывает лишь недоумение: как все эти классные люди написали такое? Системно этим заниматься никто не хочет: нет ни статического анализа, ни метрик, ни подсчёта code coverage. Нет, если хочешь, то, пожалуйста, сделай. Когда? Ну вы поняли…
А ещё очень много проектов, которые собираются и запускаются только на Linux. Если у тебя Mac, то есть хоть какая-то надежда, а вот с Windows её вообще нет. И ладно бы это был плюсовый код, но что мешает на Java разрабатывать кроссплатформенные решения? Оказывается, многие просто этого не умеют. Ведь этого не спрашивают на интервью. И даже не надейтесь, что на "финале" кто-нибудь честно скажет вам, что ноутбук нужно брать только на Linux.
Ревью и премии
Премию по итогам ревью заплатят, но, чтобы получить хорошую оценку, придётся играть по всем выше озвученным правилам с переработками и прочим. При этом недостаточно просто хорошо работать, нужно ещё уметь красиво преподнести свои достижения.
Я прошёл три ревью и три раза получил оценку D (выше ожидаемого), но повышения грейда мне это не принесло. На вопрос почему, мне сказали, что за всё это время у меня не было значимых задач, поэтому grade-up не будет. Значимых задач, Карл!
И здесь ты попадаешь в замкнутый круг: задачи тебе приходят сверху, и ты их не выбираешь. Даже, если задача дерьмо, ты будешь её делать. Отказ клеймит тебя человеком, нелояльным Компании. Попытка что-то доказать делает тебя токсичным, что тоже клеймо. Ну вы поняли…
Я работал над Брингли, который закрыли. Всё, что мы сделали за несколько месяцев, помножили на ноль. Неудачу, по сути, списали на команду разработчиков и тестировщиков. Людям понизили оценки на ревью, хотя обещали этого не делать. Естественно, часть людей уволилась после этого. Но не я, я не мог, поскольку мой год ещё не закончился...
Наём, обучение, личный рост
В Яндексе есть проблема с наймом. Оценивается, в основном, умение решать алгоритмические задачки. Это конечно хорошо, но в большинстве случаев абсолютно бесполезно в повседневной работе. Нанимать людей под конкретные задачи или с определенным набором практических умений и навыков здесь не принято. Нужен разработчик, хорошо знающий MS SQL Server? Нанять его со стороны? Пфф, да ни за что! Лучше мы кого-нибудь из своих на этот проект засунем, даже если у него нет опыта работы с MS SQL.
Развивать своих сотрудников Компания так же не заинтересована. Никаких индивидуальных планов развития – здесь так не принято. Можешь заниматься чем угодно, но в свободное от работы время.
За время моей работы Компания потратила на моё обучение ровно ноль. Более того, все мои попытки поучиться и попасть на профильные конференции были заблокированы руководством. Сначала я был на испытательном сроке, во время которого Компания не оплачивает участие сотрудников в конференциях. Затем мне заявили (в июне), что бюджет на текущий (2019) год исчерпан. В 2020-м я смог выбить билет на JPoint, его оплатили, но потом из-за пандемии Яндекс аннулировал участие сотрудников в конференциях. Ничего личного, просто политика.
Угадайте, как я узнал, что мой билет на JPoint аннулировали? Правильно, от организаторов JPoint. Яндекс же не считает нужным сообщать о подобных вещах своим сотрудникам.
Заключение
Не хотелось бы, чтобы эта статья выглядела как излияния обиженного сотрудника. Идя в Яндекс.Маркет, я понимал, что это не навсегда и даже не на долго. Правда по окончанию первого года работы я рассчитывал на повышение ЗП и планировал ротироваться в Яндекс.Облако, но, увы, первого не случилось, а второго уже не захотелось.
Тем не менее, если бы сейчас я мог вернуться во времени назад, то всё равно пошёл бы работать в Яндекс.Маркет. Это хороший опыт в плане развития soft skills и заведения новых знакомств с очень крутыми разработчиками.
Для меня работа в Яндекс.Маркете не стала работой мечты. Возможно, для вас она такой станет. Дерзайте. И да пребудет с вами Java.
Автор: Иван Вахрушев