Пройшло вже майже пів-року з того моменту як я почав працювати в Facebook і захотілося мені розказати деякі цікаві речі стосовно роботи тут. Вся ця інформація насправді доступна і багатьом відома, але комусь може буде і цікаво.
Потрапити у ФБ я пробував вже до того пару разів, але з різних причин не виходило. Цього разу коли вирішив полишити Tableau то ФБ знову став для мене одною з найголовніших контор в які я хотів потрапити. І цього разу мені вдалося.
Для мого рівня (в ФБ це називаєтья E5, а так це Senior) інтерв’ю складається з алгоритмічних задачок (тут все відносно просто), задач на дизайн (спроектувати якусь систему) – тут вже складніше і без досвіду важко, а також інтерв’ю на поведінку – питають про різні ситуації з професійного минолого, як вчинив в них, які висновки робив, як вчинив би зараз. І ось з “поведінкою” все складно – не зрозуміло як пройшло інтерв’ю бо інша сторона дивиться на наявність чи відсутність певних речей і вирішує чи підійде така людина під ті уявлення які вони мають.
Як би то не було – ось я в ФБ, їх офер виявився найбільш цікавим :) І починається все з буткампа (такої собі загальної підготовки). Тут треба сказати, що людей наймають за різними програмами і деякі одразу ідуть в конкретну команду на конкретне місце. Але у більшості випадків людей наймають просто в ФБ і далі відбувається підбір команди під себе. А буткамп проходять всі. Перші три тижні присвячені навчнню як працювати з кодом і де він знаходиться, як робити білди, як взагалі усіма внутрішніми інструментами користуватися. Також навчають деяким процесам і специфічним особливостям ФБ. Навіть є курси з C++, PHP, iOS, Android та іншого що може зацікавити. У підсумку – перші три тижні це перегляд відео та читання навчальних матеріалів.
Далі починається процес вибору команди. Працює це так. Кожен новачок вказує в своєму профілі, що його цікавить – мови, технології і таке інше. А команди з відкритими позиціями надсилають запрошення. Тобто умовно я вказую, що хочу C++, працювати над сервером, а не мобайлом, хочу писати бібліотеки і таке інше.
І ось надходять перші запрошення від команд. І їх дуже багато. Читаєш описи, зв’язуєшся з менеджерами, уточнюєш деталі. Потім обираєш команду з якою будеш “сидіти” тиждень чи більше. Тобі дають якісь цілком реальні задачі, відвідуєш мітинги і взагалі намагаєшся з’ясувати чи це те, що ти хочеш робити. Важливо тут те, що команда вже не може тобі відмовити – якщо дали запрошення і ти його прийняв то далі лише ти сам або погоджуєшся, або відмовляєшся і пробуєш іншу команду.
Радять попрацювати не менше ніж з 5 командами (тобто це мінімум ще місяць), але багато хто пробує і більше. Бували випадки коли люди більше 10 тижнів шукали собі команду. І хоча зобов’язань у тебе в цей час ніяких нема процес таки виснажливий – спробувати за короткий період щось зрозуміти про команду, їх процеси і код починає виснажувати і хочеться скоріш прийняти рішення.
Отже вибрав команду. Якщо місце все ще є (команда може пробувати на одну позицію багатьох кандидатів і перший хто погодиться і займе це місце) говориш, що нарешті вибрав і опиняєшся в команді.
Далі знову процес навчання деталям того, що робить і за що відповідальна команда (2-3 тижні як правило) і починаєш працювати з простих задач.
Через рік кожен може змінити команду без будь-яких узгоджень чи попереджень – бачиш відкриту позицію і кажеш, що займаєш її. Ну приблизно так. Нюанси є, але суть саме така.
І такий процес призводить до того, що практично на кожному місці знаходиться та людина яка саме тим і хоче займатися найбільше і саме тим і цікавиться. І усі працюють як не в себе, горнуть просто усіма чотирма кінцівками. Таких обсягів і швидкості роботи я ще не бачив ніде. Мінус – переробляти тут це нормально і звично і робить це практично кожен. Але про це може колись згодом.