August 4, 2009

Как устроиться на работу в Microsoft. Part 1

Давно хотел написать о своем опыте устройства на работу в Microsoft, но как-то не складывалось.
На тему устройства в MSFT написаны гигабайты текста в интернете, но надеюсь мой экспириенс, как и этот пост чем-то поможет тем, кто будет устраиваться на работу в будущем. =)

После запуска http://msstudent.ru/ информация о карьере в Microsoft для студентов стала более доступна, но в любом случае не стоит этим ограничиваться даже если вы еще студент. Если вам интересна информация о карьере в Российском Майкрософт, то изучаем обновленный сайт на русском языке. Подробное описание позиций в Российских офисах начиная с технических, и заканчивая позициями имеющими косвенное к этому отношение здесь.
На мой взгляд в Российском офисе много интересных позиций, мимо которых техническому и бизнес человеку просто грех пройти мимо.

Я же поступил еще проще. Где-то в декабре прошлого года я понял, что хочу сменить работу, и зашел на глобальный сайт карьер Microsoft: http://www.microsoft.com/careers/. Решил, что экзотику наверное не стоит выбирать, и остановился на центре разработки в штаб-квартире. Хотя мыслишки были поехать в какую-то чудную страну типа индии-китая на годик, пока еще молод.
По ключевым словам нашел штук 5 интересных для меня позиций и отправил резюме на каждую из них (хоть они и пишут, что надо отправлять только один раз, и резюме буит в течении года у них в поисковике, и тя найдут). Отправил и забыл. Из-за всеобщей подготовки к Новому Году решил отложить поиск новой работы до возвращения людей в рабочий ритм жизни, где-нить до второй половины января.

В итоге.. в ночь перед моим отбытием в Москву после Новогоднего отдыха (12 Jan) получаю письмо от рекрутера "Kirill Tropin / Microsoft Wants To Talk To YOU!" с описанием позиции, и просьбой заполнить анкетку (Prescreen) если мне это интересно. Мол ты раньше отправлял cv на позиции в моем департаменте, но они давно закрылись. Вот позиция в Windows Server которая может быть тебе интересна. Если не интересно - напиши плиз в двух словах почему.
Позиция как и команда были довольно интересны для меня, что не могло не радовать. Немного меня смутили требования к этой позиции (инфа также была в инете, так что она вполне открыта):
  • A masters in computer science or related field (or equivalent).
  • At least 5 years of experience as a commercial software developer in C++ or C#.
  • Strong technical background in user interface development with either WinForms or WPF. Reasonable knowledge of systems management.
  • Deep understanding and passion for IT Professionals as customers.
  • Passion for quality. A core belief that all teams share the responsibility for the quality of the product.
  • Technical Leadership. Track record of building and leading product design and architecture.
  • Execution. Proven track record in contributing to project planning and delivering.
  • Can-do entrepreneurial attitude working in a team with a sense of purpose to delight our customers with industry leading, innovative, high quality releases.

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

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

Анкета состояла из вопросов в духе ФИО, сколько денег предлагать, чтоб я начал думать о переезде, когда я впервые влюбился в компьютерные технологии итд. Так же была большая секция с чисто-техническими вопросами по C++, C#, SQL, и тестированию, которое не тестерам можно было не заполнять. Вопросы были не очень сложные, некоторые сомнения возникли только с плюсами, на которых я продакшн код не писал никогда, а писал какую-то мелочь год назад. В итоге доставил к домашней студии плюсы, и все было ок. На SDET-вопросы решил не отвечать, чтоб не ухудшать мнение обо мне, хотя некоторый уровень адекватности по тестированию у меня был.

Помимо этого, у рекрутера была довольно большая подпись в письме, включающая несколько интересных ссылок.
Check out the JobsBlog!
View MY World / Hear Our Stories! (С тех пор конечно контент не слабо обновили)

После изучения ссылок (джобс блог я чекал ранее но оч. давно), и учитывая мою любовь к компании и Seattle Area, я решил что другого пути в этой жизни нет.

На следующий день (ночь со вторника на среду) уже получил письмо, что все ОК с твоей анкеткой, дополнительное HR-интервью тож не требуется, хотим Tech Screen. Начали скедулить время, назначили на 22-00 МСК Пятницы (интервьювер был доступен начиная с 20-00 из-за 11-ти часовой разницы, но мне было удобней в десять). Во время назначения встречи у меня попросили номер телефона, и прислали ссылку в лайв митинг (ага! Значит что-то будут показывать и наверное попросят что-то написАть).

Мда.. осталось 2.5 суток, и я еще работаю на фулл-тайме (тогда еще была зимняя сессия, но кажется в эти дни экзаменов не было). "Шеф, все пропало! Гипс снимают, клиент уезжает!". За это время Кнута я пролистать ессно не успею, и стать совершенным в WPF/WinForms тоже не успею. =))
В итоге поискал в нете, что спрашивают на собеседованиях в Microsoft. Получил кучу боянистых задачек из разряда "как сдвинуть гору Фудзи" с которыми из-за олимпиадного детства проблем никогда не возникало. И ряд нормальных технических вопросов (в основном задачки на алгоритмы и структуры данных).
Вечер потратил на эти задачки, еще вечер на пролистывание не особо популярных паттернов проектирования, изучение принципов тестирования ПО, группировки тестов итд. Ну и продумывание что говорить по каждому из пунктов в моем резюме.
Продумал еще ответ на вопрос про самую тяжелую проблему с которой мне приходилось сталкиваться. В моем случае это была небольшая оптимизационная проблемка с Imagine Cup'а прошлого года. Чтоб сильно не сбиваться - напечатал ее на английском языке, т.к. этот вопрос спрашивают почти у всех.
Возобновление в памяти знаний технологий решил не проводить, т.к. не особо выгодное это дело за столь короткий срок.

Также в инете нашел несколько полезных советов которые встречались довольно часто, ну и часть из них была вполне очевидна. Вот самые важные:
  • Думать вслух (особенно по телефону молчать вобще как-то палевно).
  • После написания кода просмотреть его, рассказать как ты его будешь тестировать, и вероятно прогнать пару тестов вслух.
  • Задавать вопросы. О компании, о позиции итд. Если у тебя нет вопросов, значит это тебе не интересно. Поэтому заготовил 5 вопросов которые мне интересны, если по ходу ничего в голову не прийдет, и чтоб не забыть.

Хорошо поработал в пятницу. Распечатал резюме, чтоб было под рукой. Поставил телефон на зарядку и стал ждать звонка.

To Be Continued...