May 14th, 2011

glider

онсайт собеседование с гуглом, часть первая

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

Как оказалось, интервью можно проходить в любом офисе мира, лишь бы было удобно, причем офис, в котором проходишь интервью, никак не привязан к офису, в котором потом будешь работать. Мегаудобная система, на мой взгляд. На мой естественный вопрос "а как же так?" моя симпатичная компаньонка по обеду в гугле (жаль, не запомнил ее имени) ответила, что географическая разрозненность обычно не является препятствием для участия в проектах. Было желание съездить в Цюрих, но работница венгерского посольства (которое выдает белорусам визы в Швейцарию) разрушила мои мечты, объявив, что ближайший приемный день в посольстве будет в начале июня. Пришлось юзать дефолтный вариант и пилить в Россию, благо для этого мне, как и всем белорусам, виза не нужна. Так как до этого я уже пару раз был в Москве, и мне там понравилось, было принято решение ехать именно туда.

Небольшое отступление насчет Дженни. За всю нашу переписку я многому научился благодаря ее советам. Например, именно благодаря Дженни мое резюме приобрело гораздо более адекватный вид - скажем, она уговорила меня убрать из резюме упоминание о шести годах опыта в аутсорсе и вынести на первый план диссертационное исследование и опен-сорс проекты. Очень редко удается встречать людей, которые проявляют искреннюю и ненавязчивую заботу, поэтому я очень рад нашему знакомству с Дженни. Жаль, не получилось поехать на собеседование в Лондон (к Джону Скиту!) и познакомиться с Дженни лично.

Интервью началось с пафосного отеля. Конечно, я знал, что существуют отели, при входе в которые я почувствую себя нищебродом, но не мог подумать, что именно в таком отеле я буду жить перед собеседованием. Из ярких впечатлений: 1) увидел настоящих кисо, 2) узнал, что существует специальное зеркальце для удобного бритья (увеличивает отражение раза в полтора-два), 3) узнал значение слова "минибар". На следующий день, я зачекаутился из отеля и, пройдя пару шагов, зашел в здание гугла. Продолжение следует.
glider

онсайт собеседование с гуглом, часть вторая

Первая часть

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

1. За обедом у нас зашла речь об энвайронменте разработки. Поддерживая разговор о средах разработки, моя компаньонка сказала, что вообще не использует IDE. К этому я был готов и с надеждой спросил: "Неужели Emacs?". После недавного опыта с емаксом у меня есть желание разобраться, но я не знаю с чего начать, поэтому особенно ценной была бы возможность пообщаться с живым адептом этого таинственного тула.

Здесь меня постигло разочарование и удивление одновременно - моя собеседница сказала, что использует всего лишь какую-то несложную тулу для редактирования текста (нет, не vi), а больше ей ничего и не надо. Поиск и навигация по коду в ее воркфлове отделены от редактирования и осуществляются в некоем веб-туле аля Google Code Search. Здесь у меня три вопроса:
* Насколько близки возможности этого тула к публичному code search? Вот, я открыл случайный C#-проект в code search. Панелька навигации отображает структуру проекта и даже выделяет семантические элементы внутри файла. Это хорошо, но где гиперлинки в стиле "go to definition"?
* Можно ли поставить этот или аналогичный тул локально и индексировать свои личные проекты?
* Народ, ну как вы обходитесь без интегрированных в редактор кода рефакторингов?!

2. Я не смог удержаться и спросил одного из интервьюеров, а также и девушку за обедом про то, как народ использует 20% времени, которые политикой гугла отводятся на личные проекты. По рассказам (которые также коррелируют и с тем, что мне рассказала Дженни) получается, что можно замутить что-нибудь интересное, представить это что-то широкое публике и при успехе презентации ожидать приток свежих сил на мини-проектик. При особой пользе личного проекта для Мирового Разума, может предоставиться возможность заниматься им фулл-тайм (здесь мне рассказали историю некоего Кости, который сгенерил тул, умеющий в полуавтоматическом режиме искать data races; сейчас, при написании поста я нагуглил немного больше деталей). Звучит отлично, поэтому очень интересно было бы узнать детали.

3. Стала неожиданностью позиция народа относительно альтернативных языков программирования. Как я понял, в гугле есть четыре языка, на которых пишут большинство кода в продакшен - Java, C++, Python и Go. Мои вчерашние собеседники пишут исключительно на Java/C++ и иногда мелкие скрипты на питоне. Go считается мистической экзотикой, которую никто из них не пробовал, но, по слухам, это что-то классное. На провокационные вопросы типа: "а никогда не хотелось заюзать какой-нибудь другой ЯП?" или "согласись, приятно покодить в функциональном стиле?" никто не поддался. А самый первый мой интервьюер даже не слышал, что такое Scala. Отражает ли эта выборка мнений общую картину?

На пока что все. В следующем посте я попробую описать тематику вопросов (вчера было пять собеседований, по 1-3 задачки в каждом) и выскажу соображения по поводу подготовки на основе полученного опыта. К сожалению, тексты задачек я привести не смогу (NDA я не подписывал, но явно высказанной просьбе отказывать не хочу), но, надеюсь, будет интересно.