Олександр Котлярський, працівник лондонського офісу Facebook, розповів газеті КПІшник про свою роботу в компанії. Наводимо інтерв’ю з Олександром у повному обсязі. Інтерв’ю узяв Андрій Бродецький.
Привіт, Саша. Як справи на Лондонщині? Ми тебе не відриваємо від роботи?
Привіт! Справи йдуть чудово, в Лондон нарешті прийшла весна, і замість похмурого сірого неба ми щодня бачимо сонце. Від роботи не відриваєте, але я трохи стомлений після хакатону, який щойно закінчився.
ОК, тоді поїхали. Перше питання найочевидніше: як ти попав в Фейсбук?
Минулого року представники ФБ приїжджали в Київ проводити хакатон. Це був другий “глобальний” хакатон за межами Штатів. Сходив на їх презентацію, де вони розказували, як працюють, про внутрішню культуру і т.д. Вперше я подумав що Фейсбук таки наймає людей, і є дуже-дуже маленький, але таки шанс туди попасти. А головне — що це саме те, чого я хочу!
Потім був хакатон, я там призового місця не зайняв, але через місяць на контакт вийшов рекрутер. І понеслося: три технічні співбесіди, кілька нетехнічних, перевірили мої рекомендації. Потім телефонний дзвінок про те, що я отримав офер, потім проблема з візою Н1В, потім офер в лондонський офіс.
А чому офер в Лондон, а не в головний штаб в Каліфорнії?
Коли отримав офер, квота робочих віз в Штати (Н1В) закінчилась, було два варіанти: чекати рік або почати в Лондоні. Я, звісно, вибрав останнє.
Розкажи про свій досвід у програмуванні. З якими скілами можна попасти в ФБ?
Турбо Паскаль (куди ж без нього) опанував у 9 класі, приймав участь в шкільних олімпіадах по “інформатиці” (саме так, в лапках). В універі почав цим займатись більш серйозно, фрілансив з 2-го курсу, на 3-му влаштувався на роботу програмістом. Приймав участь і в університетських олімпіадах, але особливих досягнень не маю. Робив це скоріше для фану.
Хочу відмітити, що мені пощастило з інтерв’ю. Мене сприймали як New Grad’a (тільки з універу) і поріг був дещо нижчий. Зазвичай, як мені розказували, завдання і вимоги складніші для людей з досвідом.
Необхідні скіли — я б сказав, це розуміти основи (Computer Science), вміти швидко розв’язувати задачі, розуміючи, що можна зробити краще і швидше, а що — взагалі неможливо. Якихось специфічних вимог до мови програмування немає, інтерв’ю проводять зазвичай на “мові” кандидата. Багато уваги приділяють написаному коду.
У тебе не було проблем з мовою? Ну і взагалі з адаптацією в іншомовному середовищі.
З мовою подвійні проблеми. Спочатку незвично було опинитися в середовищі, де ніхто не розуміє ні української, ні російської. Я дуже радий, що на 5-му році навчання в КПІ пішов на курси англійської — ті 6 місяців дали мені більше, ніж вся школа і універ. Ще я час від часу спілкувався з роботодавцями з інших країн (фріланс). А подвійні проблеми тому, що в Великобританії розмовляють зовсім не так, як в США. До акценту досі звикаю.
Яка внутрішня кухня ФБ? Давай інсайди про Пало-Альто, Цукерберга, організацію роботи в офісах, корпоративну культуру ФБ.
Знайомство з штаб-квартирою почалося у жовтні 2012-го, коли мене відправили туди на bootcamp (курс підготовки для нубів). Кампус величезний, трохи нагадує КПІ — широка дорога і корпуси по обидві сторони. На території є все, що можна собі уявити — 8 закладів харчування (звісно безкоштовних: 2 великі їдальні, піцца, буріто, гамбургери, суші і sweets shop), банк, перукарня, ремонт велосипедів, медпункт, здоровенний монітор на всю стіну.
Щодо організації роботи — програмісти сидять в широченних опенспейсах, в кожного корпоративний лептоп (Mac або PC), монітор на 22+. Обстановка трохи нагадує гараж — зі стелі звисають дроти і вентиляційні шахти. Стіни, стелі, сходи — все розмальовано в графіті. Всюди можна знайти найдивовижніші речі — від надувних бананів до барних стійок та ігрових машин.
Цукерберг справляє враження дуже цілеспрямованої людини. Незважаючи на його посаду, дуже простий — сидить в опенспейсі з усіма, ходить в джинсах і звичайних кросівках, водить недороге авто. Бачив його кілька разів в їдальні, де він стояв в черзі разом з іншими. Якщо не знаєш його в обличчя, нізащо не скажеш, що він CEO компанії світового маштабу. Щоп’ятниці Зак (Zuck) проводить Q&A, йому можна поставити будь-яке питання.
Всі фішки корпоративної культури займуть середнього розміру книгу. Почну з того, що культура, виражена в словах, це вже не культура — її треба побачити і відчути на власному досвіді.
Одним з найважливіших елементів є HACK — підхід до розробки програмного забезпечення і не тільки. Це один з термінів, які мені важко пояснити. Ідея в тому, що сфокусувавшись, програміст може створити щось значне за дуже обмежений термін. Скрами, аджайли, естімейти і “робочі години” я забув як страшний сон. Кожні 6 тижнів ми проводимо внутрішній хакатон, де кожен може працювати над тим, чим хоче. Зазвичай нові фічі і корисні внутрішні системи народжуються саме під час таких івентів.
Менеджером програміста може бути тільки програміст. Після буткампу кожен сам обирає, до якої команди приєднатися, над чим працювати.
Ще однією особливістю є те, що ми всі користуємося ФБ, він глибоко інтегрований в усі інструменти. Це додає дуже важливий соціальний елемент — колеги перестають бути просто іменами з електронною адресою, а відкриваються як цікаві особистості. Особливо коли спілкуєшся з ними через півпланети.
Цікаве спостереження про Tasks Tool — внутрішній інструмент ФБ для роботи з задачами. Пам’ятаю, як кілька років тому ми намагалися запустити в одній київській ІТ-компанії систему для управління задачами Redmine. Було проведено багато мітингів і обговорень, народ малював божевільні діаграми workflow, а скільки було суперечок про те, які стани необхідні тікету, як мають працювати переходи і в кого які права є на проекти!
Facebook — міжнародна організація з 5к людей. У внутрішній системі задачі мають тільки 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% з 1000 мільйонів користувачів ФБ ним користується (до речі, треба перевірити). Як тут часто кажуть — focus on impact.
І раз вже заговорили про інтерфейси. Питання, яке не можна не задати: хто взагалі розробляє веб-інтерфейс ФБ? Чому найбільша соцмережа світу має такий жахливий в плані юзабіліті інтерфейс?
Ніякого сюрпризу тут нема: веб-інтерфейси розробляють дизайнери з Менло Парку, потім інженери втілюють його в життя і проводять велику кількість експериментів. Коментувати статтю не буду — я не великий спец в дизайні і юзабіліті. ФБ — велика і складна система, виразити її в простому, функціональному, а головне, всім зрозумілому інтерфейсі дуже складно (на рахунок останнього — взагалі неможливо). А ще люди, яким щось не подобається, зазвичай набагато “гучніші”.
ОК, запитаємо це у Цукерберга. До речі, його реально привезти в КПІ? Прочитав би лекцію “Як захопити світ”.
Думаю, майже нереально. Він дуже багато часу проводить над речами, які мають вирішальне значення для компанії, а візит в Україну навряд чи зазначається в перших рядках списку пріоритетів. Інших представників ФБ — набагато простіше. Я спілкувався з людьми, що організовували хакатон в Києві, і вони зацікавлені в тому, щоб повторити його ще раз.
Будемо чекати. Якщо не секрет, який рівень зарплат в Фейсбуку? Порівняно з київськими (хоча б приблизно – ну там 1,5-2 Х середня ЗП київського сініора).
Не секрет, рівень ЗП легко загуглити, і результати досить релевантні . Цифра, як для України, значна, але вона нічого не говорить без контексту. Податки (30-35%) і ціни на життя ростуть пропорційно зарплатам, тому я не очікую через пару років прокинутися мільйонером.
Що порадиш молодим програмістам? Як ефективніше вивчати програмування, які скіли качати?
Найголовніша порада — знайти задачі, над якими цікаво працювати, ідеї, над реалізацією яких ви б могли просидіти всю ніч тільки тому, що це захоплює. Можна спробувати олімпіади і хакатони, але також важливо вміти їх знаходити в повсякденному житті. Ось вам і перший challenge — як перетворити нудну лабу на щось дивовижне? Може реалізувати її на новій для вас мові програмування, чи застосувати небачені до цього засоби візуалізації, або вмістити її в 1 Кб коду? Часто цікаві ідеї приходять коли ставити собі складніші, а краще взагалі нереальні задачі. І коли множення матриць перетворюється в розробку інтерактивної гри, ваш скіл починає прокачуватись непомітно і надзвичайно ефективно.
Наступна порада — робіть щось разом. Навчитися чомусь в групі набагато простіше і веселіше, а досвід командної роботи в майбутньому стане в нагоді. Не бійтеся ділитися ідеями.
Що ж до конкретних скілів і технологій – це не так вже й важливо. На заході цінують Т-подібних розробників, тобто тих, які дуже добре розбираються в одній технології і одночасно володіють широким набором інших. Крім програмування раджу опанувати основи графіки і дизайну, цей скіл дуже часто стає в нагоді.
І останнє. Програмістам дуже пощастило, вони — чарівники 21-го сторіччя. Вони можуть передавати думки на інший континент за долі секунди, створювати реальні речі з нічого, оживляти предмети. Безглуздо марнувати свій унікальний талант.
Як тобі допомогло навчання в КПІ? Що за час навчання тут ти цінуєш найбільше? Що б змінилось, якби ти навчався, наприклад, в НАУ?
Важко відповідати на гіпотетичні питання. Я вважаю, що з університетом мені дуже пощастило. КПІ — це унікальна комбінація студентського духу, чудового кампусу і талановитих людей. Думаю, ні для кого не секрет, що Україна “трошки” відстає в плані технологій і айтішної навчальної бази, але я вдячний викладачам, які зробили свій внесок в мій розвиток.
А ще я безмежно радий що потрапив в гуртягу, де знайшов чудових друзів і навчився багатьом речам. Безцінний досвід. Часто з посмішкою згадую ті часи.
Що іще ти хотів сказати, але ми тебе не запитали?
До ФБ я вважав себе досить непоганим програмістом, але тепер я розумію, скільки всього ще попереду!
З радістю відповім на ваші питання в коментарях.