Меня зовут Александр и днем я full stack software инженер в Meta. Я создаю инструменты для предотвращения деплоя ломающих изменений в инфраструктуру. Строю архитектуру и user flow для безопасного деплоя в новой Meta платформе для сервисов.
Эти заметки могут быть полезны для инженеров находящихся в самом начале карьеры, когда стоит выбор, где себя применить, с чего начать и каким путем пойти начиная карьеру инженера программиста.
Мой целью было собрать цельный рассказ об опыте и трудностях работы инженера постсоветской системы образования в больших технических компаниях (BigTech) сегодня. Порефлексировать на тему преимуществ и недостатков работы в корпорации, поделиться советами и уловками, чтобы облегчить переходный процесс и добиться успеха. Я так же постараюсь развеять некоторые традиционные мифы и подсказать как легче и веселее сделать первые шаги, избежав классических ошибок. Отдельные части этого рассказа в достатке развернуты в других статьях, лекциях и книгах. Потому останавливаться на всех деталях я не буду, вместо этого оставлю ссылки для дальнейшего чтения.
Крупные компании, ещё их принято было называть в 2010-х как "FAANG"б или "Большая четвёрка", "Банда из четырёх", "GAFA" - Google, Amazon, Apple и Facebook. Туда можно смело включать Microsoft: "Большая пятёрка", "GAFAM" или "Big Tech". Это четыре или пять американских транснациональных онлайн-сервисов или программных компаний, которые доминировали в течение 2010-х годов и задавали тренды развития для всей индустрии. Сегодня термин утратил свой смысл, потому, что рейтинги поменялись, кое-кто переименовался, а кому-то пришлось и уйти. Так что теперь это "MAMAA" ????.
Топ IT гигантов можно ставить обособленно от всех прочих компаний, говоря о карьере инженера, по целому ряду причин.
Масштаб на котором развернуты программные продукты велик несравнимо: это миллионы серверов в десятках дата центров по всему земному шару с миллиардами активных пользователей и рекордами во времени бесперебойной работы. Это создает самые необычные препятствия и проблемы. Как часто вы встречали брак вычислительного модуля в процессоре в обычном мире? Когда речь идет о десятках серверных центров по всему миру и миллионах машин, вероятность встретить ???? драконов ощутимо повышается.
Глубина стека - с определенного размера, компания осваивает и переносит разработку всё большего количества используемых ей технологий внутрь, своими командами. Самые крупные игроки в этом смысле предельно самодостаточны. Как часто компании занимаются разработкой архитектуры сервера для своих дата центров? Или разработкой чипов? И одновременно с этим разрабатывают и поддерживают свои веб технологии?
Размер - число инженеров и доля на рынке труда, занимаемая этими компаниями, огромны (Meta, Alphabet, Microsoft). Это создает особые условия работы, найма и увольнения. Это требует налаженных процессов отбора, найма, обучения и удержания сотрудников, дабы удовлетворять в срок кадровый голод, который неизбежен при таких размерах и темпах роста. Последнее приводит еще и к текучке кадров внутри компании, когда, поработав над одним проектом, ты можешь безболезненно перейти на другой проект или даже совсем другую специализацию. Был UI инженером и хочешь сосредоточиться на цифровой безопасности, пожалуйста! Не говоря уже о том, что менеджеры и ведущие инженеры рождаются из рядов инженеров - несмотря на то, что их спектры обязанностей на первый взгляд могут показаться абсолютно несвязанными.
Все это, с одной стороны, ставит big tech на позицию задающих тренды всей индустрии на годы вперед в самых разных аспектах. Например, спасибо Microsoft, популярность вопроса на собеседовании про форму люка в асфальте била все рекорды какое-то время несмотря на его бесполезность. Или React, сделанный в Facebook, революционизировавший веб разработку и де-факто ставший на долгие годы золотым стандартом. То есть попадая внутрь этих компаний, ты попадаешь в эпицентр событий и имеешь возможность наблюдать воочию рождение будущего.
С другой стороны, спасибо размеру и бюджетам на обучение, это дает инженерам несравнимые возможности для саморазвития огромными темпами. Что разумно рассматривается как одна из главных причин при выборе места работы на старте карьеры. Цена найма инженера извне сегодня так высока, что дешевле и надежнее удерживать и обучать действующих сотрудников.
Мы живем в золотое время для инженера, когда спрос на рабочие руки велик и будет только расти в ближайшие годы. При таком дефиците квалифицированных кадров, с одной стороны, порог входа в компании закономерно снижается с другой. Компании готовы сами обучать новоприбывших, чтобы гарантировать нужный уровень квалификации. Так же, наличие огромного количества инженеров вокруг создало несчетное множество сообществ для взаимопомощи, обмена опытом и коллективного накопления знаний. Помимо этого, вокруг найма и обучения сегодня выросла целая индустрия "образования" и "самообразования". Это открывает широкие возможности для входа в индустрию с минимальными затратами и без раздражающих искусственных ограничений вида рекомендательных писем или "нужных знакомств". Я именно “самообразованый” на открытых источниках и корпоративном образовании - на момент трудоустройства в Яндекс у меня еще Бауманского диплома не было. И по сей день, никакого официального образования в Computer Science у меня нет. Оглянитесь на другие, более консервативные, отрасли с кадровым профицитом, скажем юристов и маркетологов, где без нужного диплома, “правильного” акцента и стопки рекомендаций вероятность получить работу драматически мала. Шансы в IT, пока ещё, на нашей стороне.
Список требований для специалистов, спасибо невероятной текучке кадров и целой индустрии их найма, теперь формализован и что самое важное широко известен далеко за пределами компаний. Более того, требования похожи до степени смешения между различными компаниями из big tech, к примеру levels.fyi. Зная эти требования мы точно знаем к чему готовиться и какие навыки оттачивать, что облегчает задачу входа и карьерного роста невероятно.
Дефицит кадров и бурный близкий к экспоненциальному рост IT индустрии объясняет высокий уровень оплаты труда. Отличие размера компенсации в IT от прочих даже глубоко инженерных отраслей драматическое, например для рынка США glassdoor research. И скорость роста согласно большинству оценок будет только расти, например наверное самое известное выступление Kjell Nordstrom.
Стоит оговориться, что помимо передовых технологий и прорывных продуктов, которые вы увидите в профиле компании, рутинная скучная работа никуда не девается - кто-то должен писать конфиги и поддерживать старые системы. Большинство (60-90% по разным оценкам и внутренним опросам) времени инженеров уходит на рутину. Работу, которую в мелких компаниях никогда бы делать не стали или как минимум щедро разбавляли бы чем-то более вдохновляющим. Я не буду вдаваться в детали почему это так - ограничусь лишь тем фактом, что бюджеты гигантов несоизмеримы с игроками поменьше. Это дает возможность нанять блестящих инженеров на достаточно простые проекты.
Правда даже если вы занимаетесь крайне скучным и неинтересным проектом, вокруг вас происходит столько всего интересного и уникального, что вы всё равно имеете возможность учиться и впитывать бесценный опыт. Если вы того хотите, у вас есть все возможности расти семимильными скачками. Но делать этого никто не обязывает. Сочетание большой зарплаты, бонусов и королевских условий труда (например офис Alphabet в Лондоне) может драматически сказываться на желании делать что-то сверх формальных требований. Это и есть золотая клетка, куда слишком легко попасть. Есть заметное количество сотрудников угодивших в нее и мы не можем их осуждать. Слишком уж это соблазнительно, когда в офисе бариста знает тебя и твои предпочтения, тебе не нужно ничего говорить, чтобы получить чашку ароматного эспрессо на зернах из Кении нужной обжарки сделанную на эспрессо машине "Eagle one by Victoria Arduino". И это бесплатно, при том, что прямо за воротами такая чашка в модном кофейне стоит £3 (₽325). Взяв кофе ты пойдешь к рабочему месту, сядешь на стул "Herman Miller" на против 34″ 4K монитора. Уйти от от всего этого в компанию за пределами BigTech на меньшую зарплату будет не просто, при том, что для этого нужно будет что-то доучить. Такова золотая клетка для ценных пролетариев наших дней.
В этой части я коснулся совсем немного плюсов и минусов работы в больших компаниях. Затронул также коварную ловушку, умело растянутую, чтобы оставить вас навсегда внутри компании. Озвучил несколько причин, почему именно сейчас золотое время, чтобы начать карьеру инженера программиста, и то, почему big tech подходящее место для этого.
В следующих частях, если эта заметка вызовет интерес, я расскажу про: важность стратегии саморазвития, ожидание личного роста, уровни развития (и компенсации), как проекты участвуют в оценке уровня инженера, 3 возможных исхода проекта, риски и не-инженерная часть работы, code review и выбор языка, как начать и возможные пути развития. Пожалуйста если есть вопросы, замечания или пожелания - оставляйте их в комментариях. Дайте мне знать насколько сказанное полезно, согласны ли вы с этим, что я упускаю.
Комментарии (5)
XaBoK
26.02.2022 20:12+1Почти всё, что вы описали может быть актуально и для стартапа и для энтерпрайза. Любой начальник с минимальным понимаем дела и хорошим бюджетом хочет звёздную команду. Будет долгий найм и строгий отбор и вопросы про мячики и люки. Вас ждёт бариста/бармен, хорошая зарплата и тупейшие, скучные задания на 90% времени.
Разница, скорее, будет в стратегии. Стартап может лопнуть, а MANGA выживают и в мировые кризисы. Так что крупные игроки могут строить планы на пять-десять лет и сразу приступать к их исполнению. Иногда опережая рынок и терпя неудачи, но готовя почву и задавая тренды.
Так что работая в BigTech, вы получаете +10 к стабильности. Как вы и сказали - можно вообще никуда не уходить, меняя направления и должности десяток лет. И тут вот может проявиться тот эффект болота, который вы упомянули. Люди прекращают развиваться, что в стартапе практически не возможно.
magictwin Автор
26.02.2022 20:56+1Справедливо, согласен - любой начальник стремится собрать лучших из лучших. Мой поинт был в том, что более мелких компаниях, что я видел, есть существенные ограничения по бюджетам. Как на компенсацию сотрудниками, так и на офис. А значит меньше денег на баристу/бармена (бар в офисе будет за деньги, например). А таже чуть ниже чем по рынку компенсация, например могут не дававать стоки.
Гипертрофированый пример - стартап снимающий офис в We Work имеет по факту куда более бедные условия.
Про стабильность и болото совершенно согласен
Bromka
Собственно недавно услышал, что в большинстве стран за рубежом, и в США в частности, нет такой сегментации на фронт и бек разработчиков, мол там объединены в SI все. Насколько это соответствует действительности?
magictwin Автор
Хороший вопрос, и да и нет. Не существует формального ограничения на тип проектов, до тех пор пока у инженера хватает скилов это делать и это согласуется с направлением работы команды и отдела. То есть в теории инженер может делать и бе и фронт, все будут только рад. Но невозможно делеть всю работу самому - кто-то должен как минимум делать код ревью. А для этого он тоже должен обладать схожим набором скилов и опыта. А значит есть ограничение от квалификации команды. И конечно же есть естественные ограничения на экспертизу самого инженера, непросто быть профи на всех уровнях стека. А значит сотрудники будут сколоняться к определенному типу задач самостоятельно.
Так что в теории разделения может и не быть, но на практике оно есть. Оно задается целями команды, скилами непосредственных пиров и тех лида, даже если сам инженер на все руки мастер.
Звучит разумно, я правильно понял вопрос?
Bromka
Да, вполне, что-то такое и предполагал на самом деле. Спасибо за ответ.