Евгений Варавва, разработчик в Google. Как описать Google в 5 словах

Можно ли описать Goggle в нескольких словах? Компанию, в которой сотни подразделений, порой настолько экспериментальных, что вплотную приближаются к научной фантастике. Компанию, в которой работают сотни тысяч человек по всему миру.

Наверное, Google — для каждого своей. Для каждого наблюдателя — сотрудника, независимого разработчика и админа, конкурента, просто человека интересующегося IT-тематикой, пользователя в сети, вбивающего в адресную строку браузера google.com.

Я познакомился c Евгением Вараввой, разработчиком широкого профиля в Google (Сан-Франциско), на Слёрме SRE — он там вовсю с удовольствием запутывал участников задачками, неожиданными багами и проблемами учебного проекта.

А после, когда начали расставлять столы, усталые участники прощаться друг с другом, сотрудники Слёрма убирали провода, роутеры и сетевые удлинители, я пригласил Евгения поговорить — каким он видит Google. Изнутри. И изменилась ли его ощущение и точка зрения за десяток лет работы в компании.

Что получилось — читайте…

6m2pten6vbw65uhpje4ubv4yww8.jpeg

Начнём с твоего образования? Откуда ты родом? Как оказался в Google? Как шёл твой путь в самую крупную и амбициозную IT-компанию планеты?

Я родился и вырос в Киеве. Учился в КПИ — Киевский Политехнический институт на ИПСА. Институт прикладного системного анализа. Наверное, из понятных названий это ближе всего к прикладной математике. То есть я шесть лет учил разные виды математики, как их использовать в реальной жизни.

Я думаю, что сейчас в работе, к сожалению, я использую минимум знаний, которые получил, пока учился. Но изучение математики точно повлияло на формирование хода мыслей, которые полезные программистам, инженерам. И это незаменимо.

Я с самого детства ходил на пару кружков по программированию, на которых я мало что понимал. В 5 классе пошёл в кружок по C++. Был в шоке, набирал то, что мне говорили, никак не мог разобраться. А потом в школе у меня был курс по HTML, учил PHP — где-то нашёл книгу по нему, и стал уже разбираться сам. И наверное, именно с PHP началась моя заинтересованность в программировании, я начал искать материалы в интернете, обдумывал задачи, устраивал мелкую автоматизацию для себя. И шаг за шагом начал заниматься web-программированием, как хобби.

Какой сейчас у тебя стек?

Cейчас у нас в компании есть четыре языка, которые используются в продакшене. Это C++, Java,
Go и Python. Бывают какие-то дополнительные языки для фронтендов и UI. Но в продакшене именно эти 4 языка.

От чего зависит выбор языка?

Тип системы, с которой работает команда. Если она обрабатывает пользовательский трафик, то скорее всего, на Python написана не будет. Большинство системно-пользовательского трафика написано на Java — с точки зрения производительности, с точки зрения количества библиотек заточенных под это в Google. Для SRE долгое время использовали Python. Наверно, в последнее время началась массовая миграция на Go. Потому что Go, как язык, удобнее статически анализировать. И он больше подходит для написания больших приложений.

GO заменит другие зыки? Или всё же они будут существовать параллельно?

Заменит ли он C++ и Java? Не могу сказать. Не уверен. Для потребностей SRE заменит скорее всего Python. Сейчас код SRE в основном пытаются писать на питоне, потому что инструменты SRE представляют собой или какие-то утилиты или серверы, которые не обрабатывают запросы. У нас есть классная команда, которая и разработала язык Go — и сейчас они подготавливают все библиотеки. В какой-то момент они сказали, что всё, пользуйтесь. И сейчас вот новые инструменты готовятся на Go. Старые останутся, наверное, на Python — у нас их довольно много, они довольно большие. И переписывать их нерационально.

Есть такая «городская легенда», что весь мир работает по технологиям Google, которым от создания уже 5–10 лет. Как только Google извлекает всю пользу от технологии, переходит на следующее поколение или новую технологию. А только лишь после выпускает старую технологию в мир.

Я думаю, что это очень упрощённое понятие, как работает Google. Потому что в Google действительно есть много технологий, которым нет аналогов во внешнем мире. Но не то, чтобы Google ждёт год, прежде чем о них рассказывать. В Google практически все инструменты и все технологии написаны внутри, просто потому что во внешнем мире нет необходимого инструментария, чтобы решить задачи Google. В мире таких opensource продуктов, которые бы справлялись с таким масштабом и нагрузкой… их нет.

Google пишет под своё окружение. И при решение определённой задачи, наши разработчики берут кусок стека, который связан с предыдущими задачами и окружением. И если взять просто кусок кода и выпустить его в opensource, он попросту не заведётся. Потому что нет этого окружения. Из-за тесной интеграции писать код, который будет работать и снаружи, и внутри — это дополнительные затраты ресурсов, которых у команд часто просто нет.

В каких случаях Google выпускает свои технологии наружу?

Хорошего ответа у меня нет. Я могу предположить. Когда какой-то подход себя отлично зарекомендовал, и компания считает, что используя этот продукт или этот подход, люди в открытом мире будут способствовать развитию IT технологии в общем. Наверное, как с Kubernetes. До того, как он вышел, было несколько решений по оркестрации контейнеров — и некоторые прижились с разной степенью эффективности.

Kubernetes вырос из внутренней системы оркестрации. Google вытащил кусочек, предложил его миру.

То есть Kubernetes — это кусочек?

Это основное ядро оркестрации без всей обвязки интеграции с окружающей средой.

cjrwvivxj_mvifnhbcwma58lkfy.jpeg

Расскажи, как ты попал в Google? Почему ты выбрал Google? Да, это компания номер 1 в мире IT, но есть ещё очень много интересных компаний со своей атмосферой…

Я думаю потому, что Google сам активно ищет людей. Именно в этом была основная причина. Возвращаясь к прошлому рассказу — я был разработчиком PHP, перешёл на Python, учился как раз в институте, я уже несколько лет подрабатывал разработчиком, и у меня был профиль на Linkedin. Там были модные ключевые слова — технологии, с которыми я работал. Несколько научных проектов в институте. Думаю, важно было то, что упоминался Linux — я использовал Linux и на работе, и на домашнем лаптопе. И мне написал рекрутер Google: «Не хочешь попробовать пособеседоваться?»

Что ты посоветуешь людям написать в профиле Linkedin, чтобы заглянул «добрый дедушка Мороз» и однажды постучался?

Нужно написать то, что люди знают и умеют. И делают хорошо. Всегда больше ценятся фундаментальные знание и принципы. В случае Linkedin технологии тоже важны, потому что людей там ищут не инженеры. Если у вас будет написано: «Я специалист, развернул восоконадёжный сервисмеш», возможно, по поиску ключевых слов, которые делает нетехнический специалист, вы не вылезете в выдаче. А если у вас будут написаны конкретные технологии, которые на слуху, которые рекрутеры слышат и рассматривают, то это будет полезнее. То есть это будет Linux, который используется везде — в Google это тоже одна из опенсорсных платформ. Какие-то языки программирования. Те же системы менеджмента контейнеров, оркестрации, может ваш опыт работы с облаками, распределёнными системами — всё это будет полезно. Но нет стопроцентного рецепта, который гарантирует. С другой стороны, люди, которые с Linux не работали, тоже приходили в SRE. Например, у них опыт работы на Microsoft стеке, но так как опыт работы распределённых систем в целом общий, то выучить новые инструменты хороший инженер сможет за небольшое время.

Расскажи, как началось твоё приключение. Вот постучался к тебе рекрутер, а что дальше…?

У меня был довольно стандартный процесс. Обычно бывает так. Рекрутер выходит на связь, присылает стандартное письмо: «Мы нашли твой профиль. И думаю, что ты будешь хорошим дополнение к нашей команде. И мы позвоним». Обычно после этого следует телефонный разговор с рекрутером. Этот процесс, наверное, зависит конкретно от команды, с которой собеседуешься.

В случае с SRE обычно, когда ты собеседуешься, то собеседуешься в целый отдел. То есть ещё команда неизвестна. То есть собеседование на любую позицию в SRE плюс-минус одинаковое.

Собеседование в команду продуктовых разработчиков может иметь специфику конкретного продукта. В случае SRЕ, так как это массовый процесс, очень много людей собеседуются. Не все проходят —, но поток собеседований очень большой.

Процесс относительно стандартизирован. Он начинается с собеседования с рекрутером, который чаще всего не технический специалист. При первом телефонном собеседовании рекрутер проверяет общую адекватность человека, что он может на английском излагать мысли. А так же предлагает блиц-опрос. Ряд простых технических вопросов, на которых не надо долго думать — ты или знаешь, или нет. Это может быть из системного администрирования, из внутренностей операционной системы. Может быть что-то про сети. Про алгоритмы.

Задаётся несколько таких вопросов. И если человек отвечает на большинство из них, то он, скорее всего, проходит на следующий этап.

Этот этап — телефонное собеседование с инженером, на котором обсуждается одно из направлений. Это написание программ, алгоритмы и структуры данных, это внутренности Linux, это траблшутинг, возможно, сети. Если это собеседование проходится успешно, то назначается второе телефонное собеседование.

В рамках этих двух телефонных собеседований можно ожидать, что будут точно вопросы по алгоритмам, структурам данных, администрированию и сетям. Больше сисадминская часть. Когда человек прошёл два телефонных собеседования, обычно его приглашают на on-site собеседование, то есть прглашают в какой-то офис Google, который находится ближе всего к кандидату. И там в течение дня кандидат общается…

То есть у тебя это было в Киеве?

Нет. У меня это было в Дублине. В тот момент, я не уверен, что был офис в Киеве или он был маленький и там не было инженеров. И SRE-инженеров в Киеве нет до сих пор. И во-первых, при первом звонке рекрутера он спрашивает, какое место ты предпочитаешь, какую из локаций SRE.

Это влияет на выбор?

Это влияет на то, где у тебя будет on-site. То есть, скорее всего, в это место тебя и нанимают. Насколько я понимаю, у нас почти в любом SRE-офисе есть вакансии. Тебе точно задают вопросы, и пытаются в процесс максимально удовлетворить твои пожелания по расположению офиса.

По сути, как я понял, в процессе интервью доброжелательное отношение к кандидату, а не давление, как часто бывает в корпорациях?

Да, в процессе интервью основная цель — найти сильные стороны человека, а не завалить его. Считается, что у каждого человека, есть свои сильные стороны, по крайней мере, если он пройдёт интервью, желательно их выявить — и задокументировать. Чтобы когда придёт время выбирать человеку команду, люди, ответственные за выбор, могли чётко оценивать, какие у человека сильные стороны и то ли это, чего им не хватает в команде.

Что именно тебе запомнилось уже при общении с инженерами?

В течение on-site — это пять собеседований с разными людьми в течение дня. Собеседование или с одним инженером, или с парой специалистов — инженером и стажёром-инженером, который обучается проведению собеседований. Все пять собеседований проводят инженеры из разных команд, с разными задачами. И на разные темы задают вопросы.

На on-site обязательно спрашивают про дизайн больших систем. То есть несколько необычный вопрос. И много лет интервьюируемые не совсем понимали, что от них хотят. Но сейчас наша рекрутинговая команда подробно объясняет кандидатам, что от них хотят и какой ответ желают получить. Это называется NALSD (Non-abstract large system design). Об этом можно почитать в интернете. Уже есть достаточно материалов. Но по сути, человеку задаются определённые требования к системе — грубо, в простейшем случае у тебя спрашивают, сколько тебе нужно для этого серверов, чтобы реализовать такую систему. Человеку предлагается изложить свои мысли, как система будет работать, как нагрузка будет распределена по серверам.

То есть, по сути, тестируются на архитекторов?

Можно сказать, да. Работа в SRE — это непосредственная работа с распределёнными системами, с высокомасштабируемыми, высоконагруженными.

И после пяти интервью, что следующее?

После пяти интервью задачи кандидата на этом заканчиваются. И начинает работать корпоративная машина. Те люди, которые принимают собеседования, они не принимают решения — брать тебя на работу или нет. Они пишут характеристику на тебя, описывают те факты, которые произошли на собеседованиях, что они считают признаками того, что ты хороший специалист и можешь работать в Google, или какие-то «красные флаги».

Как ты считаешь, какие есть точно «красные флаги»? Полный «стоп» на работу в Google.

Наверное, в первую очередь смотрят на технические способности. Но возможно какие-то нетехнические способности тоже играют роль — люди оценивают, смогут ли они работать с вами, коммуницировать, какая обратная связь.

Психологические тестирования проходят при приёме на работу?

Каждый интервьюер свободен написать о кандидате то, что он думает. И за счёт того, что это несколько человек, которые оценивают человека с разных сторон, их характеристики собираются все вместе и передаются комитету из нескольких человек. Которые в свою очередь принимают решение соответствует ли человек позиции. После этого происходит ещё один или два этапа рассмотрения. Скорее всего, это уже идёт утверждение на уровне руководства.

И обычно через месяц после всех собеседований при успешном решение на каждом шагу готовится offer.

Сколько примерно проходит времени от того, как обратился рекрутер, и до оффера?

Это процесс небыстрый. Особенно, если сравнивать с маленькими стартапами. Наверное, в среднем несколько месяцев. Обычно планируются созвоны-собеседования за неделю или за пару недель, чтобы запланировать инженеру время. При on-site это путешествие в другую страну, нужен загранпаспорт, виза и так далее. Компания с этим помогает. Но это занимает время.

У меня, наверное, получился не самый быстрый процесс. Потому что когда я собеседовался, я ещё учился. И я планировал всё же закончить обучение. Я начал собеседоваться примерно в январе-феврале, у меня on-site был в начале апреля и я получил offer где-то в конце мая. А вышел на работу в середине августа.

В последнее время есть некая тенденция… Некоторые технические директора, с кем я общался, говорят, что им уже неважно, есть у кандидата высшее образование. Важнее навыки претендента, способности к обучению и знания. Как в Google? Есть там примеры людей, у которых вот просто нет высшего образования?

Да, такие люди есть. Думаю, что IT-индустрия постепенно удаляется от приданию образованию такого же значения, как другие индустрии. Это точно не главный фактор. И он точно не в первой десятке факторов.

Но он не будет «красным флажком»?

Нет, «красным флажком» это не будет. Люди, которые обучались в западных университетах, они обучались не столько техническим навыкам, сколько навыкам взаимодействия с людьми, коммуникации, донесении своих идей. При приёме на SRE это точно не является препятствием. Человек в этой области может хорошо выполнять работу, даже если у него нет формального высшего образования.

Скажи, в какую локацию попал ты и как происходил выбор?

Я в тот момент учился, жил и работал в Киеве. И не планировал никуда ехать. И когда получил контакт от Google, решил: «Классно, надо ехать. Раз Дублин, так Дублин».

Оказалось очень классное место. Очень необычное. У людей разное отношение к Дублину — это небольшой город. Эдакая большая деревня. Первые пару лет я чувствовал себя, как турист — всё было новое и интересное. Затем третий-четвёртый год интерес немного поутих, я начал скучать, подумывал переехать в другое место. А позже, на пятый-шестой год у меня ещё раз изменилось отношение — я стал больше прилагать усилий, чтобы больше познакомиться с культурой, местными людьми. Начал путешествовать по стране — брать напрокат машину, и смотреть, что там есть. И по-настоящему полюбил Дублин и Ирландию.

У тебя уже появился ирландский акцент?

Возможно, немножко. Пока что русский акцент слышится больше, чем ирландский. Я даже знаю несколько слов на гэльском языке, народном языке Ирландии.

Вот ты переехал в другую страну, довольно быстро и немного даже спонтанно. Что ты можешь посоветовать тем, кто так переезжает?

В моём случае, в случае переезда в большую компанию, компания берёт на себя всю организацию, всю документальную поддержку, и даже финансовую помощь предлагают.

Жильё?

Google даёт жильё на первое время, пока человек переезжает и осваивается. И ищет себе жильё. Наверное, никаких особых проблем нет. Всё прошло очень безболезненно. Я остался доволен.

Нужны какие-то деньги с собой? На всякий случай.

На какие-то текущие расходы, в общем, да. Даже если что-то произошло, можно попросить компанию выдать деньги в счёт будущей зарплаты. Даже небольшой части зарплаты, которую платят специалистами SRE, хватит на карманные расходы на первое время.

По соотношению зарплат и корзины потребления в Ирландии, насколько это соотношение комфортно?

По крайней мере два года назад, когда я жил в Ирландии, это было достаточно комфортно. В Ирландии сейчас ситуация становится больше похожа на ситуацию в Кремниевой Долине. Ввиду экономических особенностей и правовых тоже многие мультинациональные корпорации делают свои штаб-квартиры в Ирландии. Там все — Microsoft, Facebook, Twitter, Airbnb. Туда приезжает много профессионалов со всей Европы, получают отличные деньги и могут позволить себе дорогое жильё. И потому цены на аренду недвижимости растут несравнимо быстро по сравнению с другими странами.

Вот сколько ты платил за жильё?

Когда я приехал в 2011 году, я платил 1100 евро в месяц. За квартиру, которая one bedroom — то есть одна спальная и одна гостиная. Когда я уезжал, я уже платил 1500–1600. Сейчас ещё больше выросли цены.

А бытовые вопросы, например, питание?

Работая в Google вопрос питания частично решён. Потому что в больших офисах есть кафетерии, как минимум обед, часто завтрак и ужин. Для человека, который живёт сам и не занимается готовкой особо для себя — для него это существенно экономит деньги.

Как бы ты охарактеризовал Google пятью словами? Твои ассоциации.

Пятью словами трудно. Я попробую рассказать о пяти направлениях, а потом каждое сжать в одно слово.

Первое, что меня встретило в Google, что для меня было неожиданно — это количество ответственности, которое дают каждому человеку. То есть если в большинстве компаний человеку просто назначают задачи, то Google ожидает, что ты сам будешь находит задачи и предлагать их решение.

Так что первое слово — это ответственность. Даже с самых первых позиций. Даётся какое-то время, чтобы понять и разобраться, что происходит. Но ожидается независимость и ответственность человека, как в выполнении работы, так и в постановке задач себе. А по мере карьерного развития и остальным в окружении.

Второе — процесс собеседования настроен на то, чтобы нанимать умных людей. И в общем я чувствую это вокруг себя постоянно — умные люди, которые любят то, что они делают, и делают это хорошо. То есть это специалисты мирового уровня, у которых всегда есть чему поучиться.

Третье — это масштабы компании. И не только в смысле технической платформы, которая является крупнейшей в мире по количеству компьютеров и ресурсов, но и по количеству пользователей. Масштабы компании, как большой корпорации, которые тоже накладывают свои особенности, в том, как происходят организационные процессы, как быстро всё меняется. Как быстро можно запустить продукт.

Четвёртое — это смелость, инновационность, амбициозность. Это то, что отличает Google от других крупных компаний. То, что руководство часто не боится делать рискованные ставки на рискованные продукты. Можно, посмотреть на компанию X, в рамках холдинга Alphabet Inc., которая базируется на амбициозных проектах. И наверное, самые известные сейчас, которые вышли из её стен — это компания Waymo, которая делает беспилотные автомобили, компания Loon, которая раздаёт интернет с помощью аэростатов.

Niantiс, которые создали Ingress и в целом новое направление геолокационных игр?

Насколько я понимаю, Niantiс вырос из внутреннего стартап-инкубатора. Google предлагает людям с амбициозными идеями описать идеи и работать над ними в режиме стартапа. Можно собрать команду единомышленников, получить финансирование на начальный этап. И если команда в состоянии подготовить прототип и доказать, что он кому-то нужен, это развивается в полноценный продукт. Наверное, это относится к так называемым «двадцатипроцентным» проектам. Всё же Adwords тоже развивался как «двадцатипроцентный» проект —, а в итоге это теперь одно из основных направлений компании.

За чем ты следишь из продуктов компании, кроме основной деятельности?

Я слежу за многими проектами из компании X. У них есть шанс изменить облик всего человечества.

Ты упоминал, что два года назад был в Дублине…

Да, я два с половиной года назад переехал из Дублина. Сейчас я живу в Сан-Франциско, Калифорния.

Переехал проект, повысилась должность, решил поменять место жительства?

На самом деле внутри компании довольно простая мобильность. В моём случае я просто решил, что интересно пожить в другом месте.

_uub9f4bifpakvtyrhcyjxctpz4.jpeg

То есть это приветствуется в Google?

Да, компания считает, что проще помочь тебе с переездом, чем ты уйдёшь в другую компанию. Попасть в компанию сложно, но если это получилось, то компания старается тебя удержать и очень ценит. И конкретно в отделе SRE мобильность чуть более простая, чем в других командах. Считается, что если ты попал в отдел SRE, то можешь работать в любой SRE команде. И когда человек проработал определённое минимальное время в одном месте, он может проявить желание — и если в другом месте как раз открыты свободные позиции, то компания поможет с переездом, с документами, с визами.

С гражданством?

С гражданством обычно компания не помогает. Она обеспечивает тебя документами, достаточными, чтобы ты спокойно мог работать на компанию. Обычно Google помогает с каким-то оформлением постоянного вида на жительство в стране. Лично у меня цели получить гражданство США нет. Есть люди, всё это поставлено на поток — и компания отслеживает, чтобы обновлялись визы, и у миграционных служб не возникало вопросов к сотрудникам.

Google — это очень гибкая компания, она постоянно меняется, ищет более эффективные формы, меняются отделы и подразделения. Есть определённые принципы компании, на которых базируется вся деятельность. Это принципы раз в несколько лет переформулируют или уточняют. Они задокументированы на странице https://about.google Думаю, это пятая особенность. Этические принципы.

Предположим, у тебя зародилась инновация или дополнение? Ты приходишь к своему руководителю? Или как это происходит?

Есть команда, которая работает с такими людьми, у которых есть идеи. Мой руководитель чаще всего занят своими обязанностями. У него есть зона ответственности, как у меня, по умолчанию.

К примеру, во время работы тебя посетил инсайт, как улучшить что-либо? Что ты будешь делать?

Я отправлю ссылку и описание коллегам по команде. Или коллегам, на чью работу это может повлиять. Начальники высокого уровня тоже доступны — во всяком случае можно послать email. И можно в бизнес-нетворкинге найти общих знакомых и поговорить с ними. Получается, коллективное ревью.

Что бы ты хотел поведать, посоветовать нашим читателям?

На этом мероприятии (Слёрм SRE), да и не только на этом, меня часто спрашивают, как попасть в Google. И говорят мне: «Я, наверное, ещё недостаточно хорош. Вот я подучу язык программирования, подучу эту технологию, подучу английский. И где-то может через год подамся». Это ошибка. В Google есть политика — если вы подаёте резюме, даже если вы провалите собеседование, то через год вы можете попробовать снова. И неудачная предыдущая попытка ничего не значит. Таким людям я всегда говорю: «Если ты планируешь податься в Google через год, то подайся вначале сейчас, а если не получится, то сделаешь это через год».

Если вы об этом задумываетесь, то лучший способ узнать, хороши ли вы для Google, это написать и попробовать. И успехов!

© Habrahabr.ru