Айбек Сарбаев — инженер-программист в американской компании Yelp, сайт для поиска и обзора ресторанов, баров и местных бизнесов, где работает более пяти лет. На сайте публикуются около 200 млн обзоров и посещают 180 млн пользователей в месяц. На площадке Go Viral Айбек провел онлайн-воркшоп и рассказал о применении языка кода Python для начинающих программистов со всех стран Центральной Азии.
Как попали в Yelp?
Я учился в Массачусетском университете в Амхерсте. По окончании бакалавриата по специальности "компьютерные науки" со специализацией "искусственный интеллект", подавал на вакансии в разные компании. Примечательно то, что в Yelp сам не подавал, а компания вышла на меня. Я разместил свое резюме на сайте AngelList, где публикуются вакансии и осуществляется поиск инвестиций для стартапов. Руководитель Yelp Джереми Стоппельман написал мне с предложением связаться с рекрутером компании. После рекрутер позвонил, и я выслал резюме.
Позже на одном мероприятии я спросил у Джереми Стоппельмана, почему именно я, и он ответил, что просто любит иногда смотреть на AngelList, так как там можно встретить интересных кандидатов.
Как выглядит этап отбора и приема на работу для программистов?
В Yelp прием на работу состоял из телефонного интервью, телефонно-технического интервью и on-site технического интервью из четырех этапов.
Знаю, что при рассмотрении моего резюме рекрутерам понравился сайт, который мы сделали с командой во время учебы в университете. На то время мы использовали новейшую технологию — WebGL, чтобы показывать 3D-объекты на веб-браузере.
Чтобы увеличить шансы и быть замеченным компаниями, важно заниматься дополнительными проектами и участвовать в хакатонах, челленджах и других мероприятиях, которые помогут вам прокачать технические навыки.
Как проходить техническое интервью?
Два интервью проходят в первой половине дня, и каждая сессия может длиться до 45 минут. Оставшиеся два интервью проходят после перерыва на обед и также могут занять до 45 минут каждый. На обеденный перерыв с кандидатом могут пойти либо ответственный рекрутер, или интервьюер. Во время обеда практикуется организация ланч-интервью, когда в неформальной обстановке кандидат может задать интересующие вопросы про компанию или работу у интервьюера-инженера.
Если раньше код писали на доске, то сейчас в Yelp практикуется использование компьютера. Подобный переход наблюдается и в других tech компаниях.
Советую при подготовке к интервью в любом случае быть готовым к написанию кода на доске и не теряться. Считаю, что в умении писать код на доске есть свои плюсы, так у кандидата появляется возможность смотреть и обсуждать задачу вместе с интервьюером.
На каждом из этапов спрашивают про complexity, насколько эффективно работает программа по части скорости и ресурсности (память, ОЗУ). Обычно ответ на этот вопрос служит индикатором понимания кандидатом процесса и алгоритма кодирования.
Процесс отбора от первого контакта с рекрутером до on-site интервью занимает от одного до полутора месяцев в зависимости от компании. Если вакантная должность срочная, то процесс может пройти быстрее.
Для ознакомления с основными типами вопросов технического интервью рекомендую сайт Cracking Coding Interviews, для практики задач — платформу Leetcode, а также Interviews.school — гид по прохождению интервью в tech-компании.
Какие навыки важны для инженера-программиста?
Технические навыки кандидата выявляются во время решения задач, и становится очевидным, какие у кандидата сильные и слабые стороны. Поэтому во время интервью обращают внимание на нетехнические навыки. Например, делится ли кандидат своими мыслями с интервьюером, объясняет ли ход решения задачи и обсуждает ли задачу с интервьюером.
Если кандидат, получив задачу, приступает к выполнению без уточняющих вопросов, не подходит к решению комплексно и сразу выдает код, то складывается впечатление, что он не делится доводами и подходом, а также узко подходит к проблеме.
Советую соискателям проговаривать мысли вслух, излагать процесс анализа и ход решения задачи и постоянно коммуницировать с интервьюером. Не нужно бояться задавать вопросы и узнавать мнение интервьюеров. В каждой компании интервью проходит по разному, но в большинстве случаев интервьюер стремится помочь кандидату выступить и представить себя наилучшим образом.
Какие нетехнические навыки важны при поиске работы?
Во время интервью кандидат должен относиться к интервьюеру как к будущему коллеге — коммуницировать, поддерживать обсуждение и быть открытым и искренним. После технических навыков не менее важными навыками являются умение работать в команде и излагать мысли вслух. Каждый интервьюер рассматривает кандидата как будущего коллегу, поэтому будет смотреть на то, насколько с этим человеком будет комфортно и легко работать.
Будущая профессия в сфере IT?
В последнее время набирают популярность Data Science и машинное обучение, и думаю, что этот тренд продолжится и в будущем. Если у вас есть навыки инженера-программиста, то перейти на любую другую роль или уйти в другое направление в IT не составит сложности.
На возросшую популярность к машинному обучению повлияли два фактора — огромное количество данных в мире и увеличенная эффективность видеокарт и их вычислительная мощность.
Как пандемия COVID-19 повлияла на Yelp и какие меры были приняты компанией?
Поиск и просмотр рецензии местного бизнеса, услуг и сервисов бесплатный для пользователей. Yelp получает доход с рекламы, которую бизнесы запускают на месяц. Мы понимали, что бизнесы потеряют доход, некоторые будут вынуждены закрыться и, соответственно, доход Yelp тоже понизится. В результате из 6000 сотрудников 1000 человек уволили и 1000 человек отправили в неоплачиваемый отпуск. Оставшимся 4000 сотрудникам сократили ставку на 20 процентов и рабочее время. К примеру, я не работаю в пятницу и эту практику ввели с мая.
Со стороны инжиниринга мы провели большую работу по оптимизации расходов и выпуску актуальных новых продуктов. Пересмотрели и сократили траты на неэффективные серверы, которые перестали быть нужными из-за снижения трафика пользования сайтом. Оптимизация расходов и их сокращение заняли у команд около месяца.
В апреле мы ввели такие функции, как фильтр поиска по доставке, самовывозу, бесконтактной доставке, и приоритизировали их по выводу в рекомендациях. Еще один новый фильтр — это возможность бизнесу отметить доступность их сервисов и услуг онлайн.
Рекомендации для программистов, желающих работать в Кремниевой долине?
Подготовиться к интервью, так как на данный момент прохождение интервью единственный способ найти работу в Кремниевой долине. Если вы работали над крутым проектом и известный специалист в своей области, то, конечно, вас возьмут и без интервью. Кремниевая долина — это рынок, где вакансий много, а кандидатов мало.
Также подавать в несколько компаний, чтобы увеличить шансы по найму. Наличие нескольких предложений позволит вам вести переговоры с целью получения более выгодных условий от компании.
Есть группа в Telegram — InterviewsSchoolKz, где можно обсудить вопросы по интервью, получить обратную связь и отзыв по резюме, в которую рекомендую вступить.
Какие перспективы и минусы видите в работе в Кремниевой долине?
Кремниевая долина — основной tech-хаб, где сконцентрировано большинство лидирующих технологических компаний. Здесь больше возможностей для развития, карьерного роста и нетворкинга. Большинство программистов в Кремниевой долине из других городов, штатов и стран, поэтому здесь не возникает ощущения того, что ты приезжий. Здесь компании уделяют внимание тренингам, росту сотрудников и менеджмента и их эффективности.
Второй хаб расположен в Сиэтле, штат Вашингтон, где расположены головные офисы Microsoft и Amazon. Третьим хабом становится город Остин, штат Техас, куда начинают переезжать tech-компании, стартапы и стекаются программисты. Одним из последних хабов, который сейчас развивается в Северной Америке, — это Торонто в Канаде.
Недостаток в Кремниевой долине и основная причина, из-за которой появляются новые хабы, — это высокие цены на аренду жилья и недвижимости, а также высокие налоги.
Советы для будущих программистов?
Для меня программирование — навык, который позволяет реализовать идею без дополнительных затрат и материалов. Если вы хотите построить машину, то, помимо навыков, нужны материалы, инструменты и помещение. В программировании нужны только компьютер, Интернет и усердие, чтобы освоить необходимые знания, доступные в Сети. При желании и трудоспособности, вы можете запустить следующий Facebook, популярную игру на смартфон или новый тип веб-продукта. Главное — не бояться!
Советую смотреть на программирование как на написание книги, где достаточно ручки и бумаги, и четко понимать, что вы хотите. Чтобы написать книгу, нужно знать грамматику, правила построения предложений, которые можно изучить в книгах и Интернете, после чего можете написать что угодно. То же самое и в программировании.
Также иметь в виду концепт "Петля уверенности/компетенции", когда вначале вы с энтузиазмом изучаете что-то и у вас получается. Достигнув определенного уровня, развитие навыков остается на одном уровне и теряется уверенность в своих компетенциях. После чего вновь появляется уверенность в своих компетенциях.
Главное, быть открытым к новым возможностям и стремиться к поставленной цели!
Айнур Искакова