Как попасть на работу в Facebook, почему в крупнейшей соцсети мира такой ужасный интерфейс, когда Цукерберг приедет в КПИ и как правильно изучать программирование — обо всем этом мы поговорили с КПИшником из лондонского офиса Facebook Александром Котлярским.
Привет, Саша. Как дела в Лондоне? Мы тебя не отрываем от работы?
Привет! Дела идут прекрасно, в Лондон наконец пришла весна, и вместо мрачного серого неба мы ежедневно видим солнце. От работы не отвлекаете, но я немного устал после хакатона, который только что закончился.
ОК, тогда поехали. Первый вопрос: как ты попал в Фейсбук?
В прошлом году представители ФБ приезжали в Киев проводить хакатон. Это был второй «глобальный» хакатон за пределами Штатов. Сходил на их презентацию, они рассказывали, как работают, о внутренней культуре и т.д. Впервые я подумал что Фейсбук же нанимает людей, и очень-очень маленький, но все-таки шанс туда попасть есть. А главное — это именно то, чего я хочу!
Затем был хакатон, я там призового места не занял, но через месяц на контакт вышел рекрутер. И понеслось: три технических собеседования, несколько нетехнических, проверили мои рекомендации. Затем телефонный звонок о том, что я получил предложение, потом проблема с визой Н1В, затем предложение в лондонский офис.
А почему предложение в Лондон, а не в главный штаб в Калифорнии?
Когда получил предложение, квота рабочих виз в Штаты (Н1В) закончилась, было два варианта: ждать год или начать в Лондоне. Я, конечно, выбрал последнее.
Расскажи о своем опыте в программировании. С какими квалификациями можно попасть в ФБ?
Турбо Паскаль (куда же без него) овладел в 9 классе, принимал участие в школьных олимпиадах по «информатике» (именно так, в кавычках). В университете начал этим заниматься более серьезно, фрилансил со 2-го курса, на 3-м поступил на работу программистом. Принимал участие и в университетских олимпиадах, но особых достижений не было. Делал это скорее ради удовольствия.
Хочу отметить, что мне повезло с интервью. Меня воспринимали как New Grad'a (только с универа) и порог был несколько ниже. Обычно, как мне рассказывали, задачи и требования сложные для людей с опытом.
Необходимые квалификациями — я бы сказал, это понимать основы Computer Science, уметь быстро решать задачи, понимать, что можно сделать лучше и быстрее, а что — вообще невозможно. Специфического требования к языку программирования не было, интервью проводят обычно на «языке» кандидата. Много внимания уделяют написанному коду.
У тебя не было проблем с языком? Да и вообще с адаптацией в иноязычной среде.
С языком двойные проблемы. Сначала непривычно было оказаться в среде, где никто не понимает ни украинского, ни русского. Я очень рад, что на 5-м году обучения в КПИ пошел на курсы английского — те 6 месяцев дали мне больше, чем вся школа и универ. Еще я иногда общался с работодателями из других стран (фриланс). А двойные проблемы потому, что в Великобритании говорят совсем не так, как в США. Ещё привыкаю к их акценту.
Какая внутренняя кухня ФБ? Давай инсайды о Пало-Альто, Цукерберге, организации работы в офисах, корпоративную культуру ФБ.
Знакомство со штаб-квартирой началось в октябре 2012-го, когда меня отправили туда на bootcamp (курс подготовки для нубов). Кампус огромный, немного напоминает КПИ — широкая дорога и корпуса по обе стороны. На территории есть все, что можно себе представить — восемь заведений общепита (конечно же бесплатных: две большие столовые, пицца, буррито, гамбургеры, суши и sweets shop), банк, парикмахерская, ремонт велосипедов, медпункт, здоровенный монитор на всю стену.
Об организации работы — программисты сидят в широких опенспейсах, у каждого корпоративный лэптоп (Mac или PC), монитор на 22 +. Обстановка немного напоминает гараж — с потолка свисают провода и вентиляционные шахты. Стены, потолки, лестницы — все разрисованы в граффити. Везде можно найти удивительные вещи — от надувных бананов в барных стоек и игровых машин.
Цукерберг производит впечатление очень целеустремленного человека. Несмотря на его должность, очень прост — сидит в опенспейсе со всеми, ходит в джинсах и обычных кроссовках, водит недорогое авто. Видел его несколько раз в столовой, где он стоял в очереди вместе с другими. Если не знал бы в лицо, ни за что не сказал бы, что он CEO компании мирового масштаба. Каждую пятницу Зук (Zuck) проводит Q&A, ему можно задать любой вопрос.
Все фишки корпоративной культуры займут среднего размера книгу. Начну с того, что культура, выраженная в словах, это уже не культура — ее нужно увидеть и почувствовать на собственном опыте.
Одним из важнейших элементов является HACK — подход к разработке программного обеспечения и не только. Это один из терминов, которые мне трудно объяснить. Идея в том, что сфокусировавшись, программист может создать что-то значительное в очень ограниченный срок. Скрамы, аджайлы, эстимейты и «рабочие часы» я забыл как страшный сон. Каждые шесть недель мы проводим внутренний хакатон, где каждый может работать над тем, чем хочет. Обычно новые фичи и полезные внутренние системы рождаются именно во время таких мероприятий.
Менеджером программиста может быть только программист. После буткампа каждый сам выбирает, в какую команду пойти, над чем работать.
Еще одной особенностью является то, что мы все пользуемся ФБ, он глубоко интегрирован во все инструменты. Это дает очень важный социальный элемент — коллеги перестают быть просто именами с электронным адресом, а открываются как интересные личности. Особенно когда общаешься с ними через полпланеты.
Интересное наблюдение о Tasks Tool — внутренний инструмент ФБ для работы с задачами. Помню, как несколько лет назад мы пытались запустить в одной киевской IT-компании систему для управления задачами Redmine. Было проведено много митингов и обсуждений, народ рисовал сумасшедшие диаграммы workflow, а сколько было споров о том, какие состояния необходимы тикетам, как должны работать переходы и у кого какие права есть на проекты!
Facebook — международная организация с около 5,000 сотрудниками. Во внутренней системе задачи имеют только 2 состояния — Open и Closed. Никаких разделений прав доступа нет. Вот она, простая гениальность! Конечно, Tasks Tool — это только пример, но, надеюсь, его достаточно, чтобы проследить тенденцию.
И несколько случайных вещей: комнаты-переговорки называются совершенно безумными именами (мои любимые AF KATYPARRY, BENDZANDRIN FAULT TOLERANCE, SON OF PING AND PONG, JUST CANT GIT ENOUGH, STARSHIP TROOPERS, SPAM SPAM SPAM AND SPAM), в среду не принято назначать митинги, один рабочий день в году мы проводим играя в игры на природе (game day), на крыше одного из корпусов МПК является QR-код, который можно отсканировать на Google Maps, в системе code-review можно использовать мемы и gif-ки.
Не запрещено ли при работе висеть в соцсетях? У вас вообще заблокированы какие-то сайты (например, ВКонтакте)?
Facebook, особенно Groups, мы часто используем для работы. Мой абстрактный среднестатистический коллега проводит около 2-3 часов в день в ФБ.
Нет, сайты не блокируют :)
Много там наших (украинских, русских)? Есть КПИшники?
Есть, даже больше, чем я мог подумать! Украинцев где-то 20 + в Менло Парке и трое в Лондоне (из них двое — выпускники КПИ). Буткамп в октябре я проходил вместе с другим КПИшником. Есть даже группа «русскоязычных» в ФБ (где-то 80 человек).
Хватает времени на собственные проекты? Например, работники Google даже обязаны часть рабочего времени тратить на свои проекты. Как с этим в ФБ? Дай ссылку на свои проекты, если таковые имеются.
Место Гугловский 20% времени у нас занимают хакатоны, где можно работать над чем угодно. На последнем (сегодня ночью!) я сделал небольшую игру (HTML Canvas / socket.io). Собственных проектов в состоянии, чтобы можно было поделиться ссылкой, пока нет. Время от времени работаю над приложением для iOS (о котором расскажу в другой раз), прохожу курсы на coursera.org.
Сразу вопрос в тему: когда в ФБ будет НОРМАЛЬНОЕ приложение для мобильных устройств?
Начну, пожалуй, с того, что с самого начала ФБ не был компанией, которая разрабатывает приложения для мобильных (как, например, начали Path или Instagram). Все процессы разработки ПО ориентировались на интернет, с которым можно двигаться очень быстро: заметил баг — отправил хотфиксами, захотел поэкспериментировать с фичей — это можно делать почти в реальном времени.
Чтобы быстро перейти на мобильные, в 2011-2012 наш апп был на 90% написан на HTML, что позволило провести не одну сотню итераций. Затем начался процесс переписывания на native code. В мобильной разработке все не так просто, как в интернете — каналы распространения приложений контролируют Google и Apple.
iOS-апп у нас достаточно неплохой, с Android'а ситуация немножко хуже. Причина, конечно, в большом многообразии устройств и версий системного ПО, а также сложности ФБ как приложения. Кстати, как раз в Лондоне работает команда, которая занимается оптимизацией Facebook for Android.
А чем в ФБ занимаешься конкретно ты? Что разрабатываешь (бэкенд / фронтэнд), какие задачи решаешь, какие инструменты используешь?
Когда я переехал в Лондон, iOS команды здесь не было, и я присоединился к Internal Tools. Мы разрабатываем инструменты, с помощью которых две тысячи инженеров могут легко управлять сайтом с миллиардом активных пользователей. Работаю и над фронтэндом, и над бэкендом, использую HipHop (диалект PHP, кстати open-source), HTML / JS, иногда Python.
Прокомментируй слова Дурова о работе в корпорациях.
Каждому свое. В данном случае я с Дуровым согласен: корпоративщина, аутсорс, всевозможные скрамы и аджайлы в большинстве случаев делают из интересной профессии рутину. Люди просто забывают, как это — играть и писать код для фана.
На каких условиях согласился бы работать в ВК?
Помню день, когда пошел на презентацию от ФБ, перед хакатоном. Тогда я буквально почувствовал, как в голове все стало на свои места, я понял, что ценности и культура ФБ — то что мне нужно, и я хочу работать с этими людьми. Согласился бы работать в ВК, если бы почувствовал такое же соответствие.
А как в ФБ смотрят на ВК? Воспринимают ли его как серьезного конкурента? Например драг-н-дроп картинок в ФБ появился относительно недавно, а в ВК был уже давно. Следят ли в ФБ за удачными решениями конкурентов?
Конечно, ВК воспринимается как один из основных конкурентов на территории бывшего СССР. Завоевать этот рынок очень сложно, ведь а) ФБ изначально создавался для западного менталитета (обратите внимание, например, с которой фанатичностью ФБ относится к приватности), б) в ВК есть бесплатные музыка и видео, «наши» не привыкли платить за контент.
Мне импонирует минималистичность и функциональность интерфейса ВК. И хотя драг-н-дроп — это очень удобно, я сомневаюсь что хоть 1% из миллиарда пользователей ФБ им пользуется (кстати, надо проверить). Как здесь часто говорят — focus on impact.
И раз уж заговорили об интерфейсах. Вопрос, который нельзя не задать: кто вообще разрабатывает веб-интерфейс ФБ? Почему самая популярная соцсеть мира имеет такой ужасный в плане юзабилити интерфейс?
Никакого сюрприза тут нет: веб-интерфейсы разрабатывают дизайнеры из Менло Парке, потом инженеры воплощают его в жизнь и проводят большое количество экспериментов. Комментировать не буду — я не большой специалист в дизайне и юзабилити. ФБ — большая и сложная система, выразить ее в простом, функциональном, а главное, всем понятном интерфейсе очень сложно (на счет последнего — вообще невозможно). А еще люди, которым что-то не нравится, обычно говорят об этом гораздо «громче».
ОК, спросим это у Цукерберга. Кстати, его реально привезти в КПИ? Прочитал бы лекцию «Как захватить мир».
Думаю, почти нереально. Он очень много времени работает над вещами, которые имеют решающее значение для компании, а визит в Украину вряд ли в первых строках его списка приоритетов. Других представителей ФБ — гораздо проще. Я общался с людьми, которые организовывали хакатон в Киеве, и они заинтересованы в том, чтобы повторить его еще раз.
Будем ждать.
Если не секрет, какой уровень зарплат в Фейсбуке? По сравнению с киевскими (хотя бы приблизительно — ну там 1,5-2 x средняя ЗП киевского синиора).
Не секрет, уровень ЗП можно легко загуглить, и результаты достаточно релевантные. Цифра, как для Украины, значительная, но она ничего не говорит без контекста. Налоги (30-35%) и цены на жизнь растут пропорционально зарплатам, поэтому я не ожидаю через пару лет проснуться миллионером.
Что посоветуешь молодым программистам? Как эффективно изучать программирование, которые кавыки качать?
Самый главный совет — найти задачи, над которыми интересно работать, идеи, над реализацией которых вы могли просидеть всю ночь только потому, что это захватывает. Можно попробовать олимпиады и хакатон, но также важно уметь их находить в повседневной жизни. Вот вам и первый challenge — как превратить скучную лабораторку на что-то удивительное? Может реализовать ее на новом для вас языке программирования или применить невиданные до этого средства визуализации, или вместить ее в 1 Кб кода? Часто интересные идеи приходят тогда, когда ставить себе сложные, а лучше вообще нереальные задачи. И когда умножения матриц превращается в разработку интерактивной игры, ваши умения начинает расти незаметно и очень эффективно.
Следующий совет — делайте что-то вместе. Учиться в группе намного проще и веселее, а опыт командной работы в будущем пригодится. Не бойтесь делиться идеями.
Что касается конкретных умений и технологий — это не так уж важно. На западе ценят Т-образных разработчиков, то есть тех, которые очень хорошо разбираются в одной технологии и одновременно обладают широким набором других. Кроме программирования советую освоить основы графики и дизайна, этот очень часто пригодиться.
И последнее. Программистам очень повезло, они — волшебники 21-го века. Они могут передавать мысли на другой континент за доли секунды, создавать реальные вещи из ничего, оживлять предметы. Бессмысленно тратить свой уникальный талант.
Как тебе помогло обучение в КПИ? Что за время обучения здесь ты ценишь больше всего? Что бы изменилось, если бы ты учился, например, в НАУ?
Трудно отвечать на гипотетические вопросы. Я считаю, что с университетом мне очень повезло. КПИ — это уникальная комбинация студенческого духа, прекрасного кампуса и талантливых людей. Думаю, ни для кого не секрет, что Украина «немножко» отстает в плане технологий и айтишной учебной базы, но я благодарен преподавателям, которые внесли свой вклад в мое развитие.
А еще я бесконечно рад что попал в общаги, где нашел замечательных друзей и научился многому. Бесценный опыт. Часто с улыбкой вспоминаю те времена.
Что еще ты хотел сказать, но мы тебя не спросили?
К ФБ я считал себя достаточно неплохим программистом, но теперь я понимаю, сколько всего еще впереди!
От переводчика, офис Facebook в Menlo Park в картиках на Хабре.
Автор: Londain