Українці в екосистемі Facebook

Привіт! Ми, команда DEV Challenge, мандруємо по всьму світу і спілкуємося з українцями, які працюють в топових продуктових компаніях. Щоб показати вам, як все влаштовано зсередини. Якщо вам сподобається стаття — ми оформимо це у спецпроект для DOU.

Facebook — компанія з мільярдним капіталом і роботодавець мрії. Магніт для найтехнологічніших умів планети, що притягнув до себе вже більше 70-ти українців. Про роботу, зарплатню та кар'єра внутрішньокар'єрні можливості в компанії спілкуємося з українцями, які там працюють: глибоким бекендером Остапом та фронтендером і сайтбілдером Сашком.

Остап Коркуна
колишній олімпіадник (золота медаль на чемпіонаті світу з програмування), а зараз громадський активіст. Вже 7 років працює в Кремнієвій долині на посаді Software Engineer в команді Monitoring (моніторинг інфраструктури Facebook).
Сашко Котлярський
легенда і сайтбілдер лондонського офісу Facebook, зараз на посаді Software Engineer працює над технологією React Native в Каліфорнїі. Суддя DEV Challenge 2017.

Facebook — це один великий продукт. Мікс розробки цілої екосистеми команд у величезній компанії. Всі працівники діляться на 2 ролі: інженери і менеджери. У компанії є глобальні цілі: важливі користувачі, важливо робити світ більш відкритим і об'єднання єднаним, важливо приносити цінність. Це глобальні цілі. З них кристалізуються метрики, наприклад: скільки грошів користувачі витрачають на рекламу, яке залучення в постів, охоплення, скільки часу проводять користувачі на сайті, скільки у месенджері. Так формується ті, чим займаються конкретні команди. Немає рознарядок.

Сашко: Команди постійно спілкуються між собою. Завжди є зворотній зв'язок. Проводяться внутрішні зустрічі, де команди розказують про свій досвід, презентують нові продукти. Так команди адаптують і коригують своє розуміння, куди і як рухатися далі.

Зверху вниз задаються тільки вектори руху, а знизу вгору йдуть рішення. Вплив продукту на інфраструктуру визначає форму навантаження. Це конкретні технічні задачі.

Остап: Є три важливі фактори, які роблять для мене роботу цікавою: складність, свобода і відповідальність. Всі ці три фактори сповна присутні у роботі інженера Facebook.

Під складністю мається на увазі складність завдань. Прості задачі швидко набридають. А найбільше захоплюють ті задачі, до яких спершу навіть не знаєш як підійти. Знаходити рішення таких проблем приносити найбільше задоволення. Саме складні задачі дозволяють виходити з зони комфорту і розвиватися.

Свобода також важлива у багатьох аспектах. У робочій філософії Facebook свобода дозволяє інженерам бути максимально ефективними. Починаючи від достатня вільного графіку роботи і закінчуючи вибором технологій, проекту і команди. Все це дозволяє інженерам працювати над тім і так, як вони хочуть. Завжди вважав програмування творчою професією, а свобода в творчості важлива :)

Ну і відповідальність — це той аспект, який спонукає інженера робити кращий, якісніший продукт. Facebook довіряє своїм інженерам приймати технологічні рішення і нести за них відповідальність. Таким чином компанія створює екосистему, в якій кожен інженер має важелі і інструменти, щоб бути ефективним.

Три принципи внутрішньої системи:

#Абсолютна довіра до співробітників. У перший день дають ноутбук і телефон з доступом до всього кодом Facebook, і ти можеш одразу його міняти.

#Команди автономні. Інженери напряму відповідають за якість свого продукту. Тому немає чітких груп тестувальників. Команди самі пишуть код, самі тестують, самі деплоять, самі забезпечують підтримку, самі його фіксять.

#Гнучкість. Можливість обирати і міняти команди. Менеджери навіть дуже рекомендують інженеру раз на 2 роки брати hackamonth — спробувати місяць попрацювати в новій команді. Так інженер може випробувати себе в розробці нового продукту, отримати нові навички і не засиджуватися на місці.

Сашко: Після певного часу роботи в одній команді інженер «вростає» у предметну сферу, і поміняти команду — це майже як відпустка. Це один із важливих факторів, чому люди залишаються у Facebook надовго. Наприклад, я змінював команду тричі за 4,5 роки. Після буткемпу і переїзду в Лондон обрав Tools Frontend, де ми працювали над різними внутрішніми інструментами для Facebook. Коли через рік перебрався до Каліфорнії, взявши hackamonth в команді React Native, тому що дуже подобалась ідея ReactJS і був досвід розробки під iOS. Сподобалось, лишився в команді на 3 роки. Після цього зрозумів, що вже багато часу провів в одній сфері, і хотілось спробувати щось нове. Записався на ще один hackamonth в Oculus, сподобалось, лишився там тепер як користувач React Native. :)

Післяробочі посиденьки в Worms в офісі лондонськму

В якійсь мірі Facebook — це багато маленьких команд-стартапів всередині великої компанії. Команди самі за свої продукти відповідають. Як одна екосистема, де багато маленьких гравців. Тому не можна політично нав'язувати зв'язати якусь внутрішню розробка. Якщо продукт команди недостатньо якісний, то його просто не будуть використовувати всередині компанії. Інші команди знайдуть щось інше або напишуть своє. Такі склалися ринкові умови.

Остап: У нас не слідкують, скільки часу ти провів за робочою машиною чи скільки рядків коду написавши. Сьогодні, наприклад, мій hard-дедлайн, щоб потрапити в офіс — це зустріч о 14:00 по обіді в офісі. Далі по 17:00 в мене ще зустрічі. А так-то я працюю там, де мені зручно, і коли я найбільш продуктивний. Наприклад, я працюю в душі, коли думаю над проектом. Часто до обіду я можу вирішувати свої важливі неробочі задачі, а потім до пізнього вечора працювати. На щастя, дружина не дозволяє мені працювати цілу ніч. На вихідних працюю рідко, бо травня достатня інших соціальних та общественных завдань.

Робочий гамак Сашка в лондонському офісі

Bootcamp. Період адаптації

Дуже важливо зрозуміти, що Facebook наймає конкретну людину, а не команду. Тому люди не приписані до команди, коли приходять у Facebook, за рідкісним винятком спеціалістів з великим досвідом у певній вузькій галузі. Більшість надходять як generalist-і (програмісти широкого профілю, так би мовити). І перші 6 тижнів новий інженер проводити в буткемпі — своєрідному тренувальному таборі, де йому випадковим чином накидують завдань з різних команд. Новий інженер ходити на лекції, де розказують, як все працює, і виконує реальні задачі. Далі спілкується з менеджерами команд, щоб краще познайомитися і зрозуміти, чи підходить він команді і навпаки.Так відбувається процес знайомства з командами. Тотальний взаємовибір. Після 6 тижнів інженер обирає, з якою командою йому залишатися. Люди знаходять один одного.

Остап: Коли вчишся, ти робиш багато помилок. Якщо помилки не толерують — то навчання не може бути ефективним. Learning environment передбачає високий рівень толерантності до помилок. Ніхто від тебе не очікує, що ти будеш всі знаті, але очікують, що ти будеш швидко вчитися.

Не існує ідеальних систем і, можливо, буткемп не підійде для всіх компаній. Але, враховуючи особливості роботи в Facebook, він прекрасно до них готує. Оскільки ми рідко наймаємо у конкретні команди і інженер має право сам обирати команду, буткемп дозволяє познайомитися з різними командами і попрацювати з ними, перед тим як робити вибір. Буткемп вчить спілкуватися, а в Facebook робота у великій мірі побудована на постійній комунікації. Також буткемпери інтенсивно вчать всі внутрішні технології. Багато чого, як і в подальшій роботі, доводиться вивчати з нуля і швидко.

Наприклад, моєю першою задачею в буткемпі було виправити дрібний баг на сайті. До цього я PHP практично не бачив і ніколи не використовував. Виправити баг це не завадило. Все майже як на С++, тільки до всіх змінних потрібно дописувати «$» ;)

Ще одна задача полягала в рефакторінгу великої бібліотеки на менші. Розбиратися повністю, як працює бібліотека, було б дуже довго. Замість того я трохи підправив одну з внутрішніх утиліт для знаходження зв'язків в коді і змусив її вивести мені граф зв'язків, який я потім просто розбив на компоненти. Таким чином успішно виконав завдання, не витрачаючи надто багато часу. Цікаве в цій історії те, що утиліта, яку я створив і, за порадою ментора, зробив доступною для інших інженерів, стала більш корисною, ніж сама бібліотека, над якою я працював спочатку.

Атмосфера лондонського офісу, двері з космічного корабля фільму «Прометей»

Буткемп дуже важливий, бо дає цілісне розуміння, як виживати в цій екосистемі. І тоді стажери та новачки самі стають частиною усіх процесів. Окрім цього, інженери постійно проводять спеціалізовані курси peer-to-peer. Це один із найважливіших способів передачі знань у Facebook. Кожен викладає по своїй частині. Формат — 30-хвилинна лекція, а потім питання, ланч або, як виняток, вечір в пабі з лектором. :) В більшості випадків це відбувається неформально, випливає із засадничого принципу постійного спілкування працівників між собою. На цьому побудована вся компанія.

Зарплатня у Facebook

Facebook платити не найбільшу з/п в Долині. Альо якщо взяти все в сумі: акції, зарплата, соцпакет, бонуси і відпустки, оплати медичних витрат, безкоштовна пральня в офісі, безплатна їжа, то виходить дуже круто. Цілком конкурентоспроможна компенсація. Приблизно така ж, як і в інших гігантів галузі — Google, Amazon, Apple.

Відпустка 21 день на рік, декретна відпустка 87 днів (для тата й мами), додаткова місячна відпустка після 5 років роботи, медична страховка для працівника і сім'ї, 401(k), $700 на різні оздоровчо-спортивні витрати на рік, 2 спортзал в офісі, 10 ресторанів з безкоштовною їжею, перукарня, стоматолог і медпункт.

Типовий робочий стіл інженера у Facebook

Як потрапити на роботу в Facebook

Звичайно, можна знайте вакансію та податися в офіційному розділі . Щоправда, коли Сашко відправив так резюме, йому відповіли відмовою. В результаті він потрапив у Facebook через хакатон в Україні. То був перший міжнародний хакатон, бо зазвичай Facebook проводити заходь лише в американських університетах. Сашко, як і Остап, брав участь в олімпіадах з програмування, але далі обласних змагань не доходив. Після семінару від Facebook був дуже вражений тим, як там запускають продукти, як тестують код.

Сашко: В тієї годину я взагалі не думав про Facebook, як технологічну компанію. Не знав, що у них проводяться стажування і можна туди податися — відправити резюме. Я просто відправив їм резюме, але, можливо, вибрав не ту вакансію. На тій запит вони написали, що у мене недостатньо досвіду. Після цього вже на хакатоні ми з другом витворили програмку, яка дозволяє peer-to-peer чату між двома користувачами. В результаті ми нічого не виграли. Нас ніхто не обрав. Альо я відкрив велику таємницю: перемога на хакатоні майже нічого не вирішує. Якщо ти його виграв — дуже класно, але найцікавіше — спілкуватися з людьми, які туди прийшли. Рекрутери роблять акцент на учасників, а не на трьох переможців. Їх цікавлять всі.

Через деякий час рекрутери Facebook самі написали листа. Коли Сашко вже підписав офер, візи в Америку закінчилися. І саме тоді відкрили інженерний офіс у Лондоні. Було дуже мало проектів — лише п'ять. Так усе почалося.

Сашко: В лондонському офісі займався фронтендом, деякими інструментами, що пов'язані з конфігурацією. А зараз, до речі, десь 300 інженерів в Лондоні. Пізніше переїхав, бо оригінальний офер був в Америку, і я вирішив спробувати Штату. З соціального аспекту Лондон набагато цікавіший. Жодних вихідних не було, щоб не мав чим зайнятися. Культура більш близька, менший офіс, в основному європейці. Наша культура трохи більше з нею збігається, ніж з американською. А в США доводиться підлаштовуватися. А з робочого аспекту — в центральному більше проектів і можна швидше рости.

Сашко кодити і поки не підозрює, що на цьому хакатоні отримає офер від Facebook, 2012, Київ

Остап вже більше 7 років працює у Facebook, але взагалі він не шукав, як потрапити туди або кудись в Долину. В Україні мав супергнучкий робочий день, добра з/п. У Facebook привела його складність і цікавість завдань.

Остап: Facebook наймає спеціалістів з різним рівнем досвіду. Загалом, скільки б досвіду у вас не було, важливо показати, що ви використовуєте свій час з користю, розвиваєтеся. Тому студент ві чі вже усталений професіонал, важливо, щоб ваше резюме показувало, що ви знаходили для себе складні задачі і вирішували їх. Знання конкретних технологій чі мов — це лише інструмент. У Facebook, швидше за все, потрібно буде вчитися чомусь новому. Але важливо показати, що ви можете користуватися цими інструментами, щоб вирішувати реальні задачі.

Молодим і активним раджу займатися тим, що їм подобається, і займатися цим серйозно. Якщо це програмування, то вкладаючи достатня години і енергії, шукаючи складні задачі і вирішуючи їх, ви обов'язково досягнете успіху, і компанії світового рівня (як Facebook) конкуруватимуть за вас. Чим конкретно займатися? Оберіть те, що вам подобається: олімпіади, хакатони, власні проекти — варіантів багато, потрібні лише комп'ютер, інтернет і бажання. Якщо ж нічого з цього вас не захоплює, можливо, програмування не для вас? :)

Остап мігрує по столах, придивляючись до потенційних кандидатів на роботу

Сашко: Треба розуміти, що Facebook наймає інженерів різних рівнів — від випускників до ветеранів нашої індустрії. Вимоги до кожної категорії теж різні. На мови програмування не звертають уваги, але потрібно вміти розв'язків язувати технічні задачки (важливо на всіх рівнях).

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

Магістрам і аспірантам — займайтесь machine learning та computer vision, це наразі дуже актуальні теми.

Більш досвідченим в індустрії — участь у конференціях, бажано в ролі доповідача, працювати над open source проектами, завжди розширювати свої горизонти. Багато колег приєдналися саме так — через активну участь у спільнотах розробників.

P. S. Хочеш прочитати про певну компанію зсередини чі розказати нам про себе — пиши у коментарях чи на [email protected]

Опубліковано: 05/06/17 @ 10:00
Розділ Різне

Рекомендуємо:

Python digest #14: Python обганяє PHP StackOverflow. Event loop in Rust
Прогнозування часових рядів за допомогою Prophet від Facebook
10 плюсів роботи в ніші ЕСЕЙ баксовыми виплатами
Інфо-сайти: підсумки травня 2017 рекорд по трафіку і кількості опублікованих статей
Як програміст з Дніпра вступив в MIT, продав свій стартап Google і став техлидом в Pinterest