Как Нодир Туракулов стал инженером Google

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

01

— Родился я в 1987 году в Ташкенте в семье ученых. Мои родители работали в Институте ядерной физики. Дедушки и бабушки тоже ученые, в частности, дед с папиной стороны был президентом Академии наук УзСССР.

В детстве я предпочитал проводить время дома, играя с конструктором или читая книжки, нежели бегать по улице. Тогда же увлекся компьютером. Когда мощности компьютера перестало хватать на новые видеоигры, оставалось только изучать Windows.

— Перекликаются ли нынешние увлечения с теми, что были в детстве?

— Да, например, в детстве у меня был скейт, и теперь от дома до автобусной остановки и по кампусу Google я передвигаюсь на скейте. Иногда играю в видеоигры, когда есть время.

— Когда появилось увлечение IT-сферой?

В старших классах школы №50 выбрал физико-математическое направление. В седьмом классе у нас начались уроки по программированию на языке Pascal. В первой четверти я плохо понимал, как программировать, и в итоге получил тройку. Но на одном из уроков во второй четверти что-то произошло, меня будто осенило, и я понял, как решить задачу. Покончив с ней, поняв, что это увлекательно, я попросил еще задачи и решил их все. Этот день помню как сейчас.

На уроках программирования на факультете математики Национального университета Узбекистана мы проходили то, что я уже знал. Однажды на первом курсе я нашел ошибку в программе учителя на доске. Он сказал мне, что если я докажу это, он освободит меня от занятий. После той пары я на занятия по информатике не ходил.

Особенно большое количество пропусков было на протяжении последних двух лет обучения, когда я увлекся работой программиста. Со второго курса я начал участвовать в международной олимпиаде по программированию (ACM ICPC), и якобы подготовка к ней давала мне право не посещать занятия первых семестров.

— Чем занимались в Узбекистане до переезда в США?

— В 2006–2008 годах работал программистом в компании NetDec. В первый год мы разрабатывали бухгалтерские приложения на 1C. На втором году я начал проект 1С на C#, который получил название UZTO. В дальнейшем NetDec создал несколько приложений на этой платформе.

В 2008 году, когда я уже оканчивал университет, на меня вышел канадский работник компании ComponentOne, одного из лидеров на рынке коммерческих софтверных компонентов. Я принял решение перейти в эту компанию программистом-контрактником и работал удаленно до 2012 года.

— Немного о семье. Она осталась в Ташкенте? Или живет с вами в штатах?

— Жена Эльзара и дети Аида (9 лет) и Айдан (5 месяцев) живут вместе со мной. Эльзара сейчас сидит с маленьким Айданом. А Аида ходит в начальную школу и увлекается танцами.

02

— Как появилась идея попасть на работу в Google?

— В 2013 году, когда я уже переехал в США благодаря работе в ComponentOne, в LinkedIn на меня вышел рекрутер Google, потому что в моем резюме отмечено третье место в Средней Азии на олимпиаде ACM ICPC (той самой).

— Google славится своими дистанционными собеседованиями при приеме на работу. Есть даже кино на эту тему. Как проходило ваше собеседование? Расскажите о заданиях и этапах.

— Сначала инженеры Google проводят телефонное интервью, чтобы отсеять тех, кто точно не пройдет собеседование в офисе (on-site). Кандидат и интервьюер открывают документ в Google Docs в режиме real-time. Сотрудник Google дает олимпиадную задачу, кандидат пишет код во время разговора по телефону, а работник смотрит на код и сразу же его проверяет. Интервью занимает около 45 минут, из которых первые и последние 5 минут уделяются знакомству, неформальной беседе и вопросам со стороны соискателя. Задачи даются одна за другой, количество зависит от скорости решения. На этом этапе даются простые алгоритмические задачи, у которых временная сложность алгоритма обычно линейная.

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

— Опишите, пожалуйста, всю процедуру приема на работу, вплоть до переезда в США.

— Вначале устанавливается контакт с рекрутером (для этого вы можете подать резюме). Он спрашивает о вашем опыте работы, отвечает на ваши вопросы. В частности, рекрутер спрашивает о предпочитаемом языке программирования для интервью, и если он сам вышел на вас, то говорит, какой отдел Google заинтересуется вами, скорее всего. Затем назначается время телефонного интервью, которое проводит инженер компании.

06Проходит около недели, звонит рекрутер и сообщает о результатах. Здесь уже появляются три варианта: отрицательный ответ, второе телефонное интервью или же прямое приглашение в офис.

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

Вы прилетаете за день до интервью. На следующий день проводится подряд три раунда по 45 минут разными инженерами, затем обед и далее еще два раунда. Каждый раунд — это такое же интервью, как телефонное, только код пишется на доске и задачи сложнее. Обычно три из пяти раундов на алгоритмы и два на системный дизайн. Инженеры заранее выбирают вопросы в зависимости от специализации и опыта работы кандидата.

Когда все пять отчетов по кандидату написаны, что обычно занимает некоторое время, комитет о приеме на работу в несколько этапов решает, брать ли вас, какую дать должность (Software Engineer II, Software Engineer III, etc), зарплату, бонус и опционы. Затем рекрутер звонит и сообщает о результатах.

— Что происходит при отрицательном ответе, понятно. А что ждет счастливчиков?

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

Иммиграционная команда присылает вопросник, затем за вас подают документы. В частности, они платят около $1000, чтобы Служба гражданства и иммиграции США (USCIS) рассмотрела ваше заявление в срочном порядке. Когда USCIS дает добро, вы назначаете встречу в посольстве США, проходите мини-интервью и получаете рабочую визу H1-B.

— Как был осуществлен ваш переезд из Питтсбурга, где вы уже были полноправным работником ComponentOne?

— Кроме иммиграционной команды, рекрутер может связать вас с компанией, которая занимается переездом. Это мой личный опыт переезда из другого штата США. Представитель компании присылает вопросник, в котором спрашивается о количестве человек в семье, размере вашего дома, сколько мебели нужно перевезти. Они покупают авиабилеты для всей семьи и организуют упаковку и перевозку всех вещей. Если есть какие-то вещи, которые нужно отправить посылкой, это будет оплачено. Также они могут нанять человека, который поможет с поиском нового дома, а пока вы выбираете дом, компания снимает квартиру на 1–3 месяца, чем я и воспользовался (жил в Купертино). Ко всему прочему, дается фиксированная сумма денег, чтобы покрыть мелкие расходы.

— Как прошли первые дни на новой работе? Было ли что-то вроде стажировки?

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

07Затем в течение двух недель мы изучали внутренние технологии Google, такие как система хранения версий Piper, система управления кластерами Borg, MapReduce.

В первый четверг в 16:30 новички собираются в большом кафе Charlie’s на еженедельное мероприятие, где Ларри Пейдж и Сергей Брин вживую рассказывают, что нового произошло за неделю, а затем какая-нибудь команда выступает с докладом.

— В каком отделе работаете вы? Над какими проектами работаете в основном?

— Я работаю в отделе Chrome Operations / Platforms на должности Senior Software Engineer. В мои обязанности входит дизайн и реализация решений крупных задач, что включает в себя сбор требований, планирование, написание и тестирование кода, возможно также ведение нескольких других сотрудников в этом же проекте.

В основном я работаю над системой Continuous Integration, которой пользуются программисты браузера Chrome и связанных с ним проектов, например, V8, WebRTC.

— Какой у вас график?

— График каждый выбирает себе сам. В 8:37 утра я сажусь в автобус Google с Wi-Fi и начинаю работать на лэптопе. Сейчас родился сын, поэтому домой я часто выезжаю раньше. Вообще график никто не контролирует, так как работника оценивают не по времени работы, а по результативности.

— Есть ли у вас собственный установленный распорядок дня, который помогает вам эффективно работать?

— Распорядка для эффективности нет как такового, но есть принципы: стараюсь сфокусироваться на текущей задаче и не отвлекаться на незначительные вещи. Стал меньше времени проводить в социальных сетях.

— Вашими глазами, какова жизнь в офисе Google?

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

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

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

— Как принял вас коллектив? Насколько быстро вы нашли свою компанию/друзей на новом месте?

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

08— Если не секрет, каков ваш оклад в Google?

— Конкретная цифра — секрет. Доход состоит из зарплаты, бонуса и опционов. Бонус это процент средней зарплаты среди программистов той же должности и выплачивается раз в год. Опционы это акции GOOG и GOOGL, которые вы получаете постепенно. Если вы хорошо работаете, то базовая зарплата растет раз в год и назначаются новые опционы. Если вас повышают, то увеличивается все компоненты дохода, включая и бонус.

— С кем из известных разработчиков вы познакомились?

— Я не знаком лично, но, к примеру, мои изменения в коде стандартной библиотеки языка программирования Go проверяли Брэд Фицпатрик, Роб Пайк и Расс Кокс.

— Чему вас научила работа в Google? 

— Очень многому. Культуре работы в команде и проверки кода друг друга (code review), культуре мониторинга веб-приложений. Научился принимать решения на основе данных, а не мнений, освоил принципы, дизайн и написание распределенных приложений (distributed applications), в частности, такие понятия, как idempotence, написание документов дизайна новой системы (design docs) и документов-постмортемов (когда что-то сломалось). Многое узнал об информационной безопасности.

— После публикации на некоторых популярных ресурсах об атмосфере, которая царит в офисах таких компаний-гигантов, как Google, Facebook, Apple, многие думают, что человек живет и работает в райских условиях. Раскройте настоящую картину – какие трудности возникают, с какими сложностями приходится сталкиваться в процессе работы?

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

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

09

— Какие самые курьезные моменты происходили с вами в процессе работы?

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

— Расскажите о самых строгих или, возможно, странных правилах, которые есть внутри Google.

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

— Насколько тонко построена управленческая система?

— В компании иерархия менеджмента: у меня есть менеджер, у которого есть менеджер и так далее, вплоть до CEO Сундара Пичаи. Но менеджмент практически не ощущается, например, микроменеджмент запрещен. На собраниях инженеры и менеджер обсуждают задачи, которые мы себе поставили, и затем тот или иной инженер берется за их решение. Роль менеджера — скорее организовать работу команды, сделать ее максимально эффективной, нежели указывать, кому что делать. Каждый встречается со своим менеджером один на один раз в одну–две недели, чтобы обсудить любые вопросы, технические или нет.

05

— Есть ли у вас какие-то проекты, которые вы ведете совместно с ташкентскими коллегами? Планируете ли вы какое-либо продолжение своей карьеры в Ташкенте?

— Нет.

— На ваш взгляд, чему скорее стоит научиться или какой опыт нужно перенять сфере IT Узбекистана?

— На такой глобальный вопрос могу дать только глобальный ответ: развивать образование в IT и вдохновлять молодежь.

— Ваш совет молодым разработчикам из Узбекистана, которые только заинтересовались этой сферой и сомневаются в своих силах.

— Не стоит сомневаться в своих силах. Если вам нравится кодить, просто продолжайте это делать и изучайте существующие технологии. Можно попробовать улучшать open-source проекты. Работы на всех хватит.

— Самый интересный вопрос от подписчиков Kommersant.uz. «В стиле собеседований при приеме на работу в Google: если бы вы были фломастером, то какого цвета и почему?» (Салтанат Токтамусова из Алматы).

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

 

Похожие материалы
Популярное