September 18, 2009

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

Начало рассказа здесь.

Как я писал раньше, засетапили мне интервью в штаб-квартире Microsoft в Редмонде на начало апреля. Судя по датам получалось довольно интересно, т.к. мой 21-й день рождения я должен был встретить в самолете на обратном пути где-то над Гренландией.

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

Мне купили электронный билет на самолет, по которому мне достаточно дать паспорт в аэропорту на регистрации. От аренды машины я отказался, т.к. года полтора не было практики, пусть лучше меня на такси покатают, не так гибко, но меньше волнений.

На этот раз на подготовку было чуть больше времени. За это время я успел прочитать избранные части Кнута, прочесть половину Рихтера “CLR 2.0 via C#” и половину “Application = Code + Markup” (типа книга по моей специализации). Конечно большинство вещей из последних двух книг я постиг на практике, но они помогли не плохо структурировать знания. Книжки я читал на английском, чтоб потом не возникало проблем с разными названиями понятий, и неадекватным переводом на русский. Думаю все догадываются, где я брал pdf-ки этих книжек. Техническую литературу о технологиях надо читать на языке создателей этих технологий.
Ближе к вылету пошли какие-то запарки на работе, и чтение литературы не очень пошло.

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

Собственно настал день вылета. Раз мне оплачивают такси и едУ в дороге – поехал на такси в аэропорт. Географически это около 5ти километров в моем случае, но ехали мы 2.5 часа в утренний час пик. На электричке и автобусе добрался бы минут за 35ть.
Выезжал заранее, в итоге попал в самый разгар регистрации. Стандартные вопросы про то где ночевал мой багаж, завтрак за счет компании в Шереметьево, подробное изучение батареек в моей зубной щетке, и я лечу в Нью-Йорк.

В это время начала работать физтеховская привычка, и за 10 часов в воздухе я дочитал с КПКшки Рихтера, и перечитал “Code Complete”, который они ну очень рекомендовали при подготовке к собеседованию, а я читал его года два назад.

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

Во время перелета через всю US мозг уже не работал (перед вылетом я почти не спал), уснуть я тоже как-то не получалось – слушал музыку, смотрел тупые передачи на мелком экране в спинке кресла впереди.

В Сиэтле кроме отсутствия облаков на небе больше ничего необычного не было. С индусом доехал до гостиницы в Бэльвью, зачекинился, и пошел проедать выделенных мне $75 на еду в ресторане. Проесть я их не сумел, но наелся хорошо. В этот раз мне регулярно предлагали алкогольные напитки, хотя мне и было 20ть (год назад у меня пару раз спросили ID). Решил до собеседования не пить. Был я в футболке “Учаснег Платформы 2007”, поэтому со мной сразу же познакомилась русская официантка, которая уже 9 лет здесь живет, через пару дней по той же причине со мной познакомилась украинская официантка.

После 30ти часов без сна, я лег в 11ть вечера по местному времени надеясь, что просплю часов до 10ти утра, и тем самым привыкну к местному времени (год назад это отлично сработало). Но не тут-то было! Я как придурок проснулся в 3 часа ночи, и даже чувствовал себя бодро. До этого я стабильно жил по NY-скому времени, просыпаясь в 14-00 в Москве. Вот блин. Ну что ж делать? Дочитал “Code + Markup”, позавтракал и поехал гулять по центру Сиэтла.

На следующий день собеседования начинались в 9ть, я планировал приехать в кампус в 8, чтоб подышать воздухом Майкрософт, для чего надо было встать часиков в 7мь. Предполагая проблемы со сном, я лег в 8 вечера, хотя мне вроде бы не хотелось.

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


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

Общение с Рекрутером
Рекрутер отвела меня в свой кабинет (еще кто-то не знает что в штаб-квартире почти у всех свой кабинет?). Мне кажется, из вопросов которые как-то могли повлиять на результат всего собеседования был только один: “Почему Microsoft?”. Мой список причин она сама немного дополнила, и рассказала о них на примере себя и сотрудников. Также рассказала, как будет проходить собеседование.

У меня было запланировано 3 встречи. Первая и третья по часу, вторая – полтора. Собственно вторая сессия была lunch-сессией, во время которой предполагалось пол часа потратить на обед. Как сказала рекрутер, мы не хотим, чтоб у тебя кружилась голова, или упал уровень сахара в крови. Потом она сказала, чтоб я не пугался, что я провел сутки в пути от порога дома до порога комнаты в отеле только ради 3х несчастных собеседований. Если все будет идти хорошо – у меня может добавиться одно или два собеседования. И чаще всего происходит так, что если у кандидата было только три собеседования его в итоге не возьмут.

После всего этого она спросила знаком ли я с рекомендациями к собеседованию. Я сказал, что знаю о “размышлении вслух”, “задавании кучи вопросов по задаче”, чтоб решать именно поставленную задачу, а не какую-то другую, ну и “тестировать код”, после того как я его написал на доске. В ответ рекрутер отметила важность первых двух, и привела простые примеры. Если ты во время размышления молчишь, ты можешь зайти в тупик, и интервьювер ничем не сможет тебе помочь. А если вдруг он попросит тебя нарисовать на доске дом, ты ничего не спросишь, и нарисуешь маленький загородный домик, а он на самом деле хотел многоэтажный – эта невнимательность очень плохо скажется на результате.

Рекрутер пожелала мне удачи, сказала какая машина для кандидатов будет ждать меня у входа в здании, и сказала женщине с ресепшина вызвать ее. Пока ждал эту машину, успел познакомиться с кандидатом, который ждал моего HR’а, и вероятно он эплаелся на туже позицию. Он выглядел значительно серьезней и умней чем я, как мне казалось. :(
Машина за мной приехала, я сказал к какому мне зданию – меня туда доставили, я сказал на ресепшене к кому я пришел, его позвали, ну и через пару минут он меня забрал.

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

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

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

После задачи время подошло к концу, и я начал задавать свои вопросы. В этот раз я к этому не готовился, но я каждому задавал уйму вопросов начиная с “work and life balance”, личной карьерой интервьювера, и заканчивая внутренними тулзами по вычислению “Cyclomatic complexity” кода.

Второе интервью
Этот собеседник мне понравился больше всех, видимо из-за похожего чувства юмора, и открытости. Отличался он тем, что в Майкрософт он относительно недавно, пишет на C#, но до этого 8 лет писал на C++ и Java исключительно под *nix’ами.

Вместо положенных 30-ти минут мы с ним обедали 70. Но обедом это тяжело назвать, обязательно каждый что-то рассказывал. Мы обсудили наши прошлые компании, после моего рассказа он отметил, что я очень увлечен моими прошлыми работами, и мне это видимо очень нравилось. Обсудили впечатления от регулярных code-reviews и code-standards. Также он спросил про курс от Net Cracker’а по телекому и Java в моем резюме, помог ли он мне где-то в жизни? Я честно сказал, что нет, но изучения телекома не плохо расширили мой кругозор, и в принципе мне было интересно.

После обеда оставалось 20 минут на задачу. Он попросил меня реализовать Pool для Int’ов. Во время оптимизации кода, я рассказал о Lazy Init’е. Уже не помню, для чего я его использовал, но не уверен, что сам бы придумал без изучения паттернов. Также он меня попросил переделать код под использование в многопоточных системах – переделал.

Третье интервью
Почему-то третьего интервьювера мне заменили, со словами, что у запланированного ранее – непредвиденные дела. Думаю вот блин, полагался наверное какой-то манагер, стало лень тратить время – дали разработчика. У него еще был немного не привычный для меня акцент (не индусский если что), что я даже пару раз переспрашивал его, других проблем с языком у меня к удивлению не наблюдалось.

Единственный вопрос по технологиям я получил во время этого интервью. “Какие 5ть гениальных улучшений пришли вместе с WPF после WinForms”. Я сказал, что 5ть это как-то мало, не получиться у меня 5ть, и выдал 6ть. %)
После “Code + Markup” мозг был хорошо промыт этими улучшениями. Собеседник сейчас только переходил на WPF с WinForms, и по глазам мне показалось, что он не со всем был знаком на 100%, из того, что я говорил.

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

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

Четвертое интервью
Между собеседованиями меня оставляли на ресепшене здания, в котором находится следующий интервьювер (так я побывал в двух зданиях). И в этих перерывах интервьюверы обсуждают кандидата между собой. И каково было мое удивление, что перед прощанием мне сказали, твоего четвертого зовут так-то (дали четвертого даже без обсуждения). Также во время этих перерывов можно было полюбоваться объектами арт-коллекции Майкрософт.


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

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

Пятое интервью
На последнем интервью у меня был более высокий менеджер чем прошлый раз. Не уверен в точной формулировке его позиции. В Майкрософт он работает уже 20 лет. За это время сменил несколько продуктов и получил мастерс за счет MS.

Первый его вопрос просто обескуражил меня. Какой у тебя был самый любимый предмет в университете? Ыыы… Такого я не ожидал. У меня-то и любым предметов в универе не было. На мою паузу он сказал, это может быть не обязательно computer science.
Я выдал – физика.
- А какая именно физика?
- Ммм..механика!
- Оо. Это ж на самом первом курсе наверное было.. А почему Механика у тебя была самым любимым предметом?
- (“вот же валит гад” (с)) Ну.. я в школе увлекался физикой, а после прихода в Университет, улучшился мат.аппарат, и теже вещи можно теперь делать гораздо проще и быстрее. Вот например возьмем устойчивость. В школе надо было танцевать с бубном чтоб это объяснить, а здесь – приравнял частные производные к нулю, посмотрел на второй дифференциал и готово (не уверен в том, что это именно так).
- Да, интересно… Но, наверное ж теория устойчивостей у вас была позже? У меня она на втором была.
- Ну да, у нас тоже на втором.

После чего дал довольно простую задачку, которую мы активно обсудили. Сказал, “Ладно, пиши код, я за кофе. Принести что-нить?”. Я ответил отрицательно, когда он вернулся я уже закодил задачку, рассказал ему. Ему понравилось, прогнали пару тестов, и все. После этого минут 20 я задавал ему вопросы, даже уже немного после окончания нашего времени, и пару раз говоря ну это последний. На прощание он сказал – если не все спросил, попроси у твоего рекрутера мое мыло, я отвечу по почте.

Попросил меня подождать минут 10 в холле, на всякий случай. Через 5 минут вернулся, попрощался, и сказал ждать результата от HR’а в течении недели.
Итого собеседования начались в 9ть утра, закончились в 16ть. С такой продолжительностью очень важно быстро привыкнуть к местному часовому поясу, и хорошо выспаться перед собеседованиями.

Нетехническое продолжение истории
Ну вот и все! Я свободен! В такси разговорился с таксистом. Товарищ оказался голландцем, который долго плевался на местные виды спорта, попонтовался тем, что знает на каких стадиях играли/играют российские футбольные клубы в этом сезоне. Естественно пожаловался на стоимость жилья в Сиэтле. Я в ответ пожаловался на стоимость жилья в Москве, он жаловаться перестал. :)
IMG_3684 by Kirill Tropin

По приезду в отель решил, что надо бы и выпить, выпил три коктейля, и пошел крепко спать. На следующий день пошел летать на водном самолете. Места были все забуканы заранее, пришлось поплакаться, что завтра улетаю, и нам дали самолет чуть большего размера, чтоб я поместился. :)
IMG_3782 by Kirill Tropin IMG_3721 by Kirill Tropin

Вечером в этот день, получил письмо от рекрутера, что меня взяли, сейчас оформляют оффер на SDE II, который я получу через пару дней. Woohooo!

Во время дороги до NY, у двоих людей на борту случился инфаркт, и на них израсходовали два кислородных баллона, и совершили экстренную посадку в Детройте. Для взлета самолету надо минимум 4 таких баллона, а на борту их было изначально 5ть, одного не хватает. В итоге мы три часа сидели ждали пока Delta у кого-то купит этот баллон, т.к. у них здесь какое-то левое представительство.
Я начал пинать стюардесс, что я не успею на коннекшин в Москву, что мне делать? Некоторому народу заменили билеты во время ожидания на другие, чтоб они точно успели на пересадку, мне же не заменили. Пошел опять снова их пинать, меня направили к представителю Delta, который был в коридоре рядом со входом в самолет. Он сказал, что номера рейсов Сиэтл-NY и NY-Москва совпадают, поэтому вероятно тот рейс не полетит, пока этот не приземлиться. На пересадку там временя почти не надо тратить – быстро добежишь. Если что, там через 6ть часов – Аэрофлот, как-нибудь доставим тебя.

Естественно рейс в Москву уже улетел, а я пошел на стойку Делты. Простоял очередь к супер-быстрым афроамериканкам, которые меняли билеты. Когда пришла моя очередь – мне сказали: “А вы знаете, т.к. рейс один и тот же, вы в нашей системе сидите в таком-то кресле и сейчас летите над Атлантикой, ничем помочь не можем”. Попросил позвать менеджера, менеджер был европейской внешности, решил часть вопроса, и рассказал что ей делать дальше. Не прошло и часа (учитывая ее 15ти-минутное пребывание в туалете), как я получил рукописный билет на рейс Аэрофлота.

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

После принятия оффера, начался длинный период ожидания результата лотереи на рабочую визу. Как оказалось, заявку они подали еще до моего собеседования, и таких как я на все штаты было тысяч 165 (те за кого успели подать заявки за 5 рабочих дней), на 65 тысяч мест. Шансов в общем-то не очень много, но они есть. В случае если я не получаю рабочую визу, я лечу на годик в дев. центр в Канаде. Который как раз открыли год назад для таких целей. Там поработаю годик, и потом по другой визе - в штаб-квартиру.

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

В середине июня меня оповестили, что я получил визу, через пару недель до меня дошла соответствующая бумажка-сертификат. Назначил себе собеседование в Киеве, там все как-то проще чем в Москве. Звонишь - назначаешь собеседование, в день собеседования привозишь все доки, и через день-два паспорт уже у тебя. На этот тип виз собеседования проводятся два раза в неделю, но очередей вобще нет (при желании вся процедура может занять 3 дня от начала сетапа собеседования).

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

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

September 11, 2009

Мой опыт Студента Партнера Майкрософт (Microsoft Student Partner)

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

2003й год

Поступил я в МФТИ. Уже тогда я понимал, что элементарные частицы на хлеб толстым слоем не намажешь, поэтому не пошел на Факультет Общей Прикладной Физики, хотя в школе основной моей направленностью была именно физика. Пошел на факультет Радиотехники и Кибернетики. В любом случа/е идти в IT-индустрию, а здесь может получше этому научат, и специальность хоть будет соответствующая.

2004й год
Курс C под DOS'ом в первом семестре меня как-то не особо впечатлил, поэтому мозг требовал чего-то более интересного. И тут случайно в этом семестре начали читать тех.курс по выбору от кафедры информатики по созданию современных веб-приложений на некой платформе .NET. К сожалению, этот курс пересекался с семинаром по теории вероятности, на которую я заставил себя забить только два раза (первые занятия курса).
Естественно после С я был впечатлен легкостью создания оконных приложений на этом самом .NET'е. Но знакомство с ним у меня прекратилось до следующего семестра. Не помню уже почему, но летом я занялся изучением плюсов, адекватизировался в ООП, и слегка поразвлекался.

В осеннем семестре с учебой уже не было никаких накладок, хотя и ту пару по теор.веру можно было перенести, если б не моя первокурская зеленость.
На первой паре преподаватели которые вели этот курс (это были
Николай Сурин и Станислав Воног) рассказали о своей недавней поездке в Бразилию, о втором месте на Imagine Cup 2004, выигранном призе. Естественно показали кучу фоток и поделились впечатлениями. Как вы думаете захотелось ли мне изучать эти технологии? Естественно да! Хотел бы я полететь на халяву в какую-то экзотическую страну типа Бразилии, познакомиться с кучей студентов, и если ну очень хорошо постараться может и небольшой приз выиграть. И естественно на пути к этому еще стать специалистом в этой области.
В этом семестре мне кажется я не пропустил ни одной лекции курса. Я забивал несколько раз, но именно в эти дни лекций не было. =)
Тогда же был студенческий день Microsoft в МДМ. Организовано было качественно, новый экспириенс для меня, но как-то особенно меня это не впечатлило. Хотя меня тяжело наверное впечатлить. :)

2005й год
Курс был годовой, и он у меня продолжался в весеннем семестре. Тогда же на парах информатики у нас был семестровый проект. Преподаватель был заядлым линуксоидом, но не считая этого – неплохим человеком и специалистом. Сначала он настаивал на g++, потом на mono, а потом смирился на фраме версии 1.1. В итоге получили вдвоем пятерки (это был командный проект).
В тоже время в конце тех.курса по дот нет для получения диплома от Microsoft (который в итоге так никто и не получил J) надо было подготовить 10-ти минутный доклад на одну из тем, которые не были покрыты в течении курса. Я скачал презенташку кажется с PDC про новые возможности ASP.NET для мобильных браузеров в новом фреймворке. Удалил те слайды которые я вообще не понимал, оставил почти полностью понятные, в итоге получил довольно прикольную презенташку, которую рассказывал только Николаю.

После этого он меня пригласил на встречу студенческой
группы .net разработчиков МФТИ, просто пойти послушать доклады по технологиям. Как ни странно, она уже существовала более полугода, и я о ней еще ни разу не слышал, и не видел объявлений в универе, которые регулярно развешивали.
Мне кажется, основная причина того, что я туда пошел, была не в интересе к тем докладам (тогда я не еще не понимал их великого смысла), а скорее из интереса просто пообщаться с крутыми разработчиками в неформальной обстановке. После этой встречи я также начал ездить на встречи
RSDN в Московский офис Майрософт, тогда он еще был на Чапаевском. Естественно это было для меня очень круто, какой-то студент-второкур ездит в офис MS, и общается с крутыми дядьками.
В конце семестра был традиционный день Майкрософт в МФТИ. Я ничем интересным на нем не занимался, только ел, слушал доклады, и в конце в лохотроне выиграл мега-флешку от Майкрософт на целых 64Мб!
После чуть более тесного общения со Стасом и Николаем, для меня их победа в Imagine Cup 2005 в Йокогаме уже не была неожиданностью. =)

Где-то в мае выпустили Visual Studio 2005 Beta2. И вместе с ней всем желающим по почте рассылали диск WeFly247 с учебными материалами. Приблизительно в тоже время я завел свой первый блог, и один из моих первых постов был об этом событии.
В течении лета в свободное от отдыха время я смотрел технические видео на английском с этого диска (половину я не понимал вообще, но к концу лета с пониманием стало чуть получше), немного писал код, редактировал сэмплы в конце концов.
В процессе изучения, это меня так прикололо, что я даже начал писать технический посты в блоге. И как оказалось есть люди, которым это интересно, но они специально не искали эти материалы в других местах. После этого я даже начал подумывать, о том, чтоб сделать какой-то интересный доклад для таких людей на юзер группе нашего универа. Ведь Microsoft делает некоторые реально классные вещи!

Где-то в районе лета (или до или после) я тесно пообщался со Стасом Воногом, на тот момент он был Студентом Консультантом Майкрософт МФТИ. В те времена в ТОПовых ВУЗах страны были Студенты Консультанты, у которых могло быть еще несколько Студентов Партнеров, а в других ВУЗах были просто
Студенты Партнеры.
Как это не удивительно,
Майкрософт поощряет студентов, тех которые разбираются и изучают современные технологии, и это так им нравится, что они делятся этими знаниями со своими друзьями и просто окружающими их студентами.

Поощрение не ограничивается строчкой в резюме и знакомством с такими же как ты в других университетах. В состав этого поощрения также входит:
  • периодическое обучение
  • бесплатное участие в платных мероприятиях типа Платформы
  • некоторая бесплатная техническая литература
  • приоритетные регистрации на мероприятиях
  • гарантированное телефонное интервью при устройстве на работу в компанию
  • доступ к некоторым секретным материалам
  • периодическое общение с разработчиками компании
  • лицензионное программное обеспечение для тех, у кого нет MSDN AA
И помимо всего этого, лучших Студентов Партнеров Майкрософт катают по миру, на европейские встречи и на TechEd'ы.
Бесплатно обучают, а лучших еще катают по миру? Пфф.. I’m definitely in!

Таким образом я стал MSP с испытательным сроком в три месяца, но я считал этот испытательный срок просто формальностью для меня, т.к. полностью соответствовал всем критериям программы, ну и так же нацелился на лидерство в программе. Ну а че? =))

На осенней встрече студентов партнеров я уже чувствовал себя полноценным членом программы. Видимо из-за моего блога другие MSP уже были со мной виртуально знакомы. Я сразу же начал браться за активности в программе, перевел одну презенташку на русский к готовящимуся лончу Visual Studio 2005. Конечно по переводу я получил не мало критических комментариев, но со второй итерацией вроде стало все лучше, и некоторые студенты даже ее использовали на своих лончах.
На счет программы встречи MSP, я не уверен, что имею право писать, поэтому не буду. :)

В тоже время я таки решил сделать доклад на нашей юзер группе, первый мой доклад был посвящен Смарт Клиентам. Я изучил прикольную технологию, она мне понравилось, мне будет приятно, если она кому-то еще понравится. Это был мой первый опыт публичных выступлений, знания в этом деле я только почерпнул с выступлений других разработчиков на других встречах.
Как оказалось если смотреть в ноутбук, то вообще не страшно рассказывать, но так народу будет не особо интересно, поэтому я начал вставать из-за стола, и стоя рассказывать какие-то вещи, которые не требовали кодирования в студии.
Меня засыпали вопросами люди с разработческих компаний расположенных на Физтехе (с опытом 5+ лет), я иногда не то чтобы не понимал смысла вопроса, а не понимал тех понятий которыми оперировали эти люди, что в последствии стимулировало меня изучать новые вещи еще быстрее.
После этого выступления я прослушал фидбек от наших MSP, и просто от друзей которых я пригласил на встречу, обдумал его, и к следующему выступлению мне кажется вел себя уже гораздо лучше.

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

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

С этого семестра мне уже было не интересно просто помогать, мне было интересно уже самостоятельно отвечать за все, приносить больше impacta в действия MSP в университете. И так складывались обстоятельства, что со следующего учебного года я видимо становился главным в программе в МФТИ.

Поэтому с этого семестра уже я драйвил день Майкрософт в МФТИ (он получился хуже чем предыдущий), хотя по уровню тех развлечений и того что мы тогда проделали он мне нравится больше всех в которых я принимал участие.
Также я стал одним из лидеров в нашей группе .NET разработчиков, приглашал часть докладчиков, организовывал встречи.

В этом же семестре мы участвовали в Imagine Cup, и благодаря большим командным усилиям мы поехали в экзотическую страну (Индию, вероятно более экзотическую чем Бразилия), о таком я мог только мечтать за два года до этого. Денег мы конечно не заработали но вошли в 12 лучших команд мира.
Не могу сказать, что участие в программе MSP является необходимым требованием для этого, но оно помогло мне сильно улучшить мой технический уровень.

Осенью было уже обычное для меня мероприятие Майкрософт в МФТИ, на этот раз попробовали сделать его двухдневным, что привело к нам больше студентов (не всем было бы удобно одно конкретное время). Но из-за загруженности по докладам (я каждый день делал по одному часовому докладу) не удалось значительно повысить уровень организации мероприятия. Тогда же я стал официальным MSP lead'ом в МФТИ.

Как докладчик я тогда проделал интересную авантюру. Один из моих докладов был посвящен WPF (он только зарелизился), но я уже делал подобный доклад весной. Хоть этот освящал немного другую сторону, я решил что контент не особо жжод.
Утром перед докладом я нашел очень свежую статью по WPF/E, где приводились только небольшие примеры кода, какую-нибудь CTP обещали опубликовать через пару месяцев. Днем я кардинально изменил презентацию, и сотня студентов были просто поражены этими инновациями. И когда Майкрософт больше чем через пол года начал всем надоедливо промывать мозги этим самым Silverlight, для этих студентов это уже не было новостью, и после WPF они легко ориентировались в топике.

После поездки в Индию я стал фанатом Imagine Cup, и меня расстраивало, что умные российские студенты не добываются высот в онлайн-категориях, точнее они почти в них не участвуют. Поэтому я организовал локальные конкурсы на Физтехе. В результате чего уровень наших студентов в конкурсе заметно повысился.

В тоже время я начал обижаться на Майкрософт, что меня никуда не катают как вознаграждение за безграничную любовь к ним.

2007й год
Где-то в районе нового года мне сообщили, что меня хотят повезти на
глобальную встречу MSP которая будет приурочена MVP саммиту в штаб-квартире Microsoft в Редмонде, WA.
Wow! Я тут надеялся на встречу европейских студентов-партнеров, а тут меня везут на глобальную еще и на кампус! Как потом оказалось я из России лечу один (компанию мне никто тоже не составит), и всего в мире нас таких 15 студентов.
На встрече было все на самом высоком уровне. Гостиница в Seattle downtown. Keynote Билла Гейтса. Встречи организованные чисто для студентов с Anders Hejlsberg, Scott Guthrie, пару презентаций секретных проектов (часть из которых до сих пор не в паблике). После этого всего был MVP Summit, общение с разработчиками, обсуждение будущего проектов. Что может быть лучше для любителя технологий Майкрософт? Помимо этого мне присвоили почетное звание MSP Guru.


В весеннем семестре я уже решил, что довольно неплохо развился в публичных выступлениях. Получал уже на докладах 8 из 9ти за мастерство докладчика. Во время доклада по pressentation skills для MSP на весенней встрече я уже чувствовал себя выше по уровню чем содержание того доклада.
Поэтому я решил сосредоточиться на получении другого опыта от программы. Так на запуске Vist'ы мы отказались от своих докладов, и сосредоточились на маркетинге мероприятия, и на его организации в целом. В итоге мы добились просто гениального результата – 300+ студентов пришли на мероприятие. И оценки за организацию были одними из самых высоких за нашу историю.
Это не слабо повлияло на то, что осенью меня повезли на TechEd в Барселону на Европейскую встречу MSP.

Начиная с осени было принято решение побить все существующие рекорды связанные с нашей Юзер Группой. После некоторых планирований, и активных действий она стала самой большой среди студенческих групп России, стала занимать 4е место среди всех Юзер Групп страны и ближайшего русско-язычного зарубежья. По количеству встреч заняла абсолютное первое место. На данный момент статистика конечно немного ухудшилась.
Вместе с Сашей Бобковым активизировали и немного изменили тот тех.курс по выбору на котором я узнал о технологиях Майкрософт. Там же получили опыт преподавания, который как ни странно отличается от чтения докладов на различных мероприятиях.

С этой же осени я начал давать больше возможностей моим последователям реализовать себя.

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

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

August 12, 2009

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

Начало рассказа здесь.

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

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

Приехал я на собеседование на стажировку... (вероятно это будет так же кому-то интересно). Сначала у меня было интервью с рекрутером. Обсудили общие вопросы, что мне интересно в CS, основной язык, и поехали по техническим вопросам. Причем пред этим она предупредила, что она не технический специалист, это так.. общий ассесмент. После некоторых вопросов я начал бояться следующих технических интервью.

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

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

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

Во втором интервью меня вообще попросили написать функцию, которая определяет валидный ли IP-адрес по строке. Вообще ничего сложного в плане алгоритмов, просто смотрят на то, как ты мыслишь, и как тестируешь после. С ней я довольно не плохо справился, спросил про IPv6, получил ответ зависит от того что в спеках сказано, решай сам. Ну и в общем остались вдвоем довольны беседой как мне показалось. Кстати он же единственный кто спросил про мой опыт MSP за все время, но сильно не заострял на этом внимание. А на последок спросил интересны ли мне позиции PM и SDET на стажировке, или я только рассматриваю предложения по SDE (все таки на PM’ов они из не US берут, но оч. мало). Я сказал свои приоритеты, пожали руки и все. Недели через 3 мне написали, что меня не взяли. Потому что я просто тренировался здесь, или же просто потому что много лажал – не знаю. =)) Но этот опыт пользу безусловно принес.


За оставшееся время до моего собеседования в Редмонде мне еще написали кажется 3 команды, одна из которых была расположена в Копенгагене. Кстати в сентябре приедут туда набирать. Не плохое место, если вы не хотите уезжать из Европы.

Про очное интервью в кампусе – следующий раз.

To Be Continued...

August 8, 2009

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

Начало рассказа здесь.

Перед телефонным собеседованием я читал в инете, что интервьюверы иногда опаздывают со звонком, и их не стоит доставать своими звонками, если прошло 2-3 минуты после назначенного времени. Но как я и предполагал, это касалось в основном HR-интервью. Когда у рекрутера десятки интервью за день, и расписание может сдвигаться.

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


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

После этого прошлись по моему резюме, обсудили чем интересным занимался, как относился к возможности возглавлять проекты. Чему меня в универе учили, и почему я после специальности прикладная физика прикладная математика решил пойти на специальность “Control in Engineering and Organization Systems” в магистратуре.

Ну и после минут 20-ти общения “за жизнь” перешли на технические вопросы. Первый же вопрос был в каких случаях какую UI технологию стоит использовать WinForms или WPF. На тему когда лучше использовать WinForms я не смог привести много примеров, но зато качественно обосновал проблемы с производительностью. Еще парочку каких-то общих вопросов, в духе как я отношусь к ООП и паттернам и перешли собственно к задаче.

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

Как-то не очень все складывается… Надо “думать вслух” в телефон, и одновременно писать код на клаве, желательно двумя руками. Рассказал собеседнику, как я собираюсь решать эту задачу, и он мне предложил положить телефон, и просто писать код. А если у меня под рукой есть студия, то написать в студии, и потом скопипастить в лайв митинг, он ессно понимает, что в лайв митинге писать код еще менее удобно чем в ноутпаде. =))

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

В самом начале я спросил еще стоит ли мне беспокоится о плохих входных данных, или же полагаться что входные данные будут как описано в задаче. Он одобрил, что входные данные не проверять. А вдруг бы я написал не то что он хочет? Это кстати считается самой грубой ошибкой во время решения задач на доске, и если вы сделали совсем не то… скорее всего с вами попрощаются. Поэтому надо в начале завалить интервьювера уточняющими вопросами. Такой же совет я услышал от своего рекрутера перед финальными собеседованиями.

Когда я закончил – сбилдил код в студии, тестовые запуски в ней не стал делать, т.к. до конца собеседования оставалось минут 10. Скопипастил код в лайв митинг, там же написал пару инлайн комментов, и сказал что почти закончил, “осталось только xml-комментарии написать”. Вместе посмеялись, и начали обсуждать код.

Сначала он предложил мне пройтись по data-flows в моем коде, что куда и зачем входит, и где после этого вылезает. После естественно спросил как я буду тестировать код. Я предложил парочку простых комбинаций, парочку комбинаций на микширование случаев, ну и комбинации на переполнение. Т.к. входные данные мы не проверяем, я напомнил об этом, и сказал что плохой инпут тестировать не буду, но если надо было, обязательно бы проверил вот это, это и это.

На последок спросил про оптимальность моего решения. По процессору у меня было (1.5 +/- 0.5)*N итераций, а по памяти O(N). Ну я ему так и сказал – линейно по N, значит норм, в любом случае меньше одного прохода у нас ну никак не получится, так что это вполне нормальный способ. Он со мной согласился, и на этом его вопросы закончились (осталось пару минут до конца собеседования).

Я приступил к своим записанным 5ти вопросам, т.к. за этот час о новых вопросах у меня не было возможности подумать. И связь оборвалась. На телефоне было 0:59:59 – видимо у Мегалола ограничение на продолжительность разговора равно одному часу. Заокеанский товарищ позвонил, извинился, оправдался, что у него тоже было час ровно, и это не вина Майкрософт что связь оборвалась. =) Еще минут 5 мы обсуждали мои вопросы, пока они у меня не кончились. Потом он начал требовать, чтоб я еще задавал вопросы, а они ну никак в голову не лезли. Вот блин… подумает еще что мне компания и позиция не интересны… Так что я сказал, что я вижу что мы уже out of time, и я не хочу мешать работать – если что напишу вопросы по почте. “Не против?” – Не против.

У меня всегда по английскому были тройки везде где я его учил (по другим языкам как ни странно так же). Но сложностей как-то не возникло. Возможно из-за сотен часов веб-кастов от людей с американским пронансом, или от 10-ти сезонов Friends, или от небольшого общения с носителями, не знаю. Но послушать американскую речь хотя бы в веб-кастах стОит! И если нет возможности общаться - найдите подругу или друга по skype, и потренируйтесь. Заодно привыкните к телефонным помехам во время разговора на чужом языке, ну и акцент будет не столь ужасен как он мог бы быть. Кстати интервьюверы понимают потенциальные проблемы с языком, и нормально к этому относятся. Так этот товарищ говорил на английском быстрее чем я говорю на русском когда что-то надо быстро рассказать, потом спросил не быстро ли говорит, я сказал что можно чуть помедленнее, и стало совсем все ОК. =)

Приготовил себе ужин, перед едой чекаю почту, а там уже письмо “Good news!”. Молодцы, в теме письма пишут результат, не то что некоторые.. пока найдешь резалт в конце письма сердце уже выпрыгнет.

Судя по времени, письмо пришло через 25 мин после окончания собеседования – совсем молодцы! Я их уже люблю.

Читаю письмо – хотим личной встречи в Редмонде. Билеты сами купим, гостиницу сами оплатим, напоим, накормим, машину снимем, на бензин дадим (O_o они меня тоже любят). Ну вообще круто!! Ну а че? Ни разу не слажал, по требованиям прохожу, иначе бы телефонное не сетапили.

Каково было мое удивление, когда я задачу с телефонного дал на техническом интервью в мою компанию пару неделю спустя. И человек довольно быстро решил ее за N итераций по времени и O(1) по памяти. =))
Задачу не публикую, т.к. она довольно простая, и как я понял у каждого из интервьюверов есть по сотне задач, так что запоминать ее не имеет смысла.


С меня для сетапа интервью в кампусе соответственно нужен ряд документов для верификации, могу ли я потенциально работать в U.S.. Скан паспорта, прошлых виз, cv, скан и перевод диплома, скан и перевод транскрипта. Вот здесь и начались чудеса.

Т.к. я поступил в магистратуру не забирая документов – мой диплом сразу никто не печатал, обычно их печатают где-нить к ноябрю. Но естественно когда он нужен, его не будет. Так и у меня. Январь месяц, а его еще нет. Точнее он есть, но его повезли на подпись в базовый институт, который в двух часах езды от университета. Туда он не доехал, а из универа он уже две недели назад уехал.
Человек который его вез появляется на работе на несколько часов в неделю, ну и поймать его не возможно. Мне обещают, что диплом будет максимум через 10 дней. Ну я соответственно оттягиваю время передачи этих документов на 3 недели (ну так, про запас). Копию диплома я в итоге получил через 4 недели. И почему-то оказалось, что под дипломом подразумевался диплом без приложения. Приложение к диплому вообще я увижу в конце 6-го курса, и оценки никто вбивать раньше времени не собирается.

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

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

Как оказалось, они на меня давили, т.к. надо успеть подать заявку на рабочую визу в начале апреля. Это та еще тема. В год выделяется приблизительно 50 000 рабочих виз, а за 5 рабочих дней приема документов на рабочие визы приходит порядка 150 000 заявок. В итоге визы разыгрывают в лотерее. В этом году если не ошибаюсь было 85k виз, 20k из которых полагаются мастерам или докторам американского производства. А оставшиеся 65k как минимум бакалаврам любых вузов. Получилось еще так, что заявку на меня зафайлили еще до получения оффера, и до последнего собеседования. 

To Be Continued...

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...