Співбесіда на software engineer у Google виявилася не одним інтерв'ю, а цілою окремою справою. Поки готувався, я вів і редагував нотатки. Тепер тут є телефонний скринінг і кодинг, далі системний дизайн та Googleyness and Leadership. Є навіть те, що відбувається після раундів: hiring committee, пробні співбесіди з моїми інструментами, team matching.
Навіщо ще один текст про Google? Бо про самі задачі написано багато, а дрібні правила процесу чомусь вилітають із голови першими. Ставлення до цього відбору теж кумедне. Одні його захищають, інші називають лотереєю. Якщо серйозно, сперечатися з машиною можна довго, але мені було корисніше зрозуміти, де в неї кнопки.
Про одну таку кнопку рекрутер розповів уже на першому дзвінку. Google дає три спроби за п'ять років, після цього заявки не приймають. Три спроби на всю кар'єру. Потім розповів колишньому колезі, він секунд п'ять нічого не відповідав. Вийшло переконливіше за будь-яку промову на тему «не зіпсуй усе».
Телефонний скринінг
Телефонний скринінг у Google проходить у спільному Google Doc. Не в IDE, а у звичайному текстовому документі без підсвічування синтаксису й автодоповнення. Сорок п'ять хвилин пишеш там справжній код, а інша людина дивиться, як ти набираєш текст. Мені дісталися задача на sliding window і варіант binary search, обидві рівня medium.
У звичайній роботі я багато експериментую та виправляю код у процесі. Але коли є сорок п'ять хвилин, порожній Google Doc і пара очей, яка стежить за кожною клавішею, це не працює. Хотів би я знати про цей Doc до скринінгу.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeЩе одну деталь я довідався вже пізніше. Якщо інтерв'юер вагається, кандидатові не відмовляють одразу, а призначають другий телефонний скринінг. Я знаю двох людей, із якими так сталося, один із них був у Discord для випускників coding bootcamp. Обидва пройшли далі з другої спроби.
Кодинг
До відбору я встиг розв'язати 200 задач на LeetCode. Солідна цифра, правда? Користі від неї було менше, ніж я собі уявляв, і складність задач тут ні до чого.
Google любить ховати справжнє запитання серед контексту та зайвих зачіпок. Колишній колега це пояснював, але я, звичайно, вирішив, що вже впізнаю всі шаблони. В одному раунді формулювання здалося мені вчорашнім sliding window. Я почав писати, минуло вісім хвилин, і раптом з'ясувалося, що задача інша. Треба назад. Інтерв'юер усі вісім хвилин мовчав і дивився, як я впевнено йду не туди. З парковки я набрав колегу. «Так, я ж казав», ось і весь розбір польотів.
Під час задачі треба говорити, а не сподіватися, що правильний код усе пояснить сам. Учорашній шаблон теж краще залишити вчора. Ну й окремо довелося шукати задачі, де змішані кілька тем.
Чому взагалі важливо щось говорити, якщо код працює? Бо hiring committee читає пакет, а не дивиться ваш раунд. У пакет потрапить те, що почув і записав інтерв'юер. Я якось мовчки зробив задачу на граф, після чого отримав у відгуку «неясне міркування». З моєї точки зору задача була розв'язана. З точки зору пакета я, схоже, вгадав. Колега прочитав його пізніше й сказав майже те саме, тільки менш ввічливо.
Змішані задачі стали іншим неприємним відкриттям. Граф разом із dynamic programming мені дали в одному раунді, дерево з hashmap у другому. А де ж чистий binary search чи звичайний BFS? Майже ніде. До цього я три вихідні розкладав підготовку по окремих темах, бо п'ятсот medium виглядали серйозніше за п'ятдесят комбінацій. На співбесіді арифметика виявилася протилежною. Якщо сумніваєтесь, почніть зі змішаних п'ятдесяти й урятуйте собі ті вихідні.
Системний дизайн
Із системним дизайном у Google цікава математика: раунд один, вирішальна деталь теж іноді одна. Тренер називав її ключовим осяянням. Я посміювався з цієї назви, поки на розподіленій системі не згадав про інвалідацію кешу за тридцять секунд до кінця. Ще трохи, і ми б так і розмовляли на рівні схеми. Одна з трьох спроб за п'ять років через кеш, чудова перспектива.
Googleyness and Leadership
Googleyness and Leadership звучить значно таємничіше, ніж виглядає. Там говорять про командні конфлікти. Згадують невдалі проєкти, питають про відповідальність. Один інтерв'юер навіть сказав, що дехто з комітету майже не читає цю частину пакета. Чи варто тоді її пропустити? Склад свого комітету ви не знаєте, тому я б не грав у таку лотерею.
Hiring committee
Співбесіда в Google схожа на лотерею, і саме комітет робить її такою. Чотири або п'ять інженерів, які ніколи мене не бачили, вирішували мою долю за пакетами від людей, котрі проводили раунди. Незнайомці читають нотатки інших незнайомців про мене. Колега знав людину, яка двічі проходила відбір у Google та щоразу потрапляла до іншого складу комітету. За майже однакової співбесіди результати вийшли зовсім різними.
Пробні співбесіди
Пробні співбесіди краще знайомлять із дивними деталями процесу, ніж будь-який список запитань. Роль інтерв'юера взяв на себе мій колишній колега, і ми проводили повні раунди через Google Meet.
Тут у мене була фора: я працюю над InterviewMan, тож під час пробних раундів запускав наш інструмент так, як це робив би справжній кандидат. Він чує задачу через аудіо й показує підказки щодо підходу у вікні, яке бачите лише ви. Колега п'ять хвилин намагався його знайти. Перевіряв демонстрацію екрана, мій Dock, запис сесії, але не побачив нічого. Під час пробного раунду Googleyness інструмент витягнув із розмови історію про конфлікт, яку я зовсім забув.
Саме таку історію комітет нібито майже не читає, але в пакеті вона все одно має бути. А на пробному системному дизайні він звернув увагу на кешування, і для тієї задачі це якраз виявилося ключовим рішенням.
Якщо говорити про інструменти загалом, сервіси лише для кодингу на зразок Interview Coder коштують 299 доларів на місяць. Вони охоплюють три раунди з п'яти, а із системним дизайном та поведінковою співбесідою кандидат залишається сам. InterviewMan працює в усіх п'яти раундах і коштує 12 доларів на місяць за річним планом. Три місяці підготовки обійшлися мені у 36 доларів, це дешевше за один тиждень Interview Coder. У нас 57 000 користувачів і понад 20 функцій непомітності. Наскільки я можу судити, поки що нікого не викрили.
Team matching
Згода комітету ще не означає офер. Після неї починається team matching: кандидат і hiring manager мають обрати одне одного, а схвалення діє приблизно рік. Тож поспішати немає куди. Найкраща й трохи парадоксальна порада, яку я почув за весь цей час: дочекайтеся команди, заради якої справді захочеться прокидатися.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

