Google разрешил ИИ на собесе. Но не везде
Google разрешил ИИ на собесе. Но не везде
Google пилотит новый этап для software engineer'ов — code comprehension.
Как выглядит: дают существующую кодовую базу, надо её прочитать, найти баги, оптимизировать, обсудить решения. Алгоритм с нуля писать не нужно. Рядом Gemini, которым можно и нужно пользоваться. (Другой сеткой не дают пользоваться)
Оценивают три вещи: промпты, валидацию того, что модель выдала, и дебаг. То есть в рубрике интервьюера теперь буквально есть пункт "AI fluency".
Кого касается: джуны и мидлы в США, отдельные команды (начали с Google Cloud и platforms and devices), со второй половины 2026. Если вы не в США — пока мимо.
Что НЕ изменилось: обычные алгосекции на месте, и там ИИ по-прежнему нельзя. System design и hiring committee тоже без изменений. LeetCode не убрали, а жаль.
Почему это происходит: Google в апреле сказал, что 75% нового кода в Google генерит ИИ (осенью было 50%). Собес, где просят из головы написать обход графа уже давно не несет какой то полезности а работе.
А теперь про задачи
Пример: типовые баги, которые в такой формат ложатся идеально.
1. Дедуп, который молча теряет не те строки
def dedupe_events(df):
return (df
.orderBy("event_time")
.dropDuplicates(["user_id"]))
Spark не гарантирует, что
dropDuplicates
сделает сначала предыдущий
orderBy
. Джоба работает, тесты зелёные, а в проде раз в неделю может случаться лик и ивент будет некорректно попадать.
Правильно — окно с
row_number()
.
Но: при равных
event_time
тай-брейк всё ещё недетерминирован. Gemini окно предложит, а вот про тай-брейк промолчит. Если вы это заметите, то получите бонус за output validation.
2. Инкрементальная загрузка по вотермарке
last_ts = target.select(max("updated_at")).collect()[0][0]
new = source.filter(col("updated_at") > last_ts)
Проблема:
Строгое
>
теряет строки с тем же timestamp, приехавшие после запуска. Таймзоны источника и таргета. Late-arriving данные.
Удаления в источнике не приедут.
Что ожидают что ты напишешь Gemini:
Джоба упала посередине — вотермарка сдвинулась или нет?
Здесь смотрят, спросишь ли ты «а у нас at-least-once или exactly-once?» до того, как полезешь чинить.
3. Ретрай, который списывает деньги дважды
for attempt in range(3):
try:
charge_customer(order_id, amount)
break
except TimeoutError:
time.sleep(1)
Что проверяют?:
Платёж прошёл, ответ потерялся, а ошибка показывает Timeout — произойдет тройное списание.
Нужно исправить все ошибки и переписать чтобы все корректно работало.
Как это выглядит по таймингу
( c Reddit)
60 минут, проект на 200–500 строк. Минут 10 читаешь и проговариваешь вслух, что код вообще должен делать. Минут 15 ищешь баги руками и формулируешь гипотезы. Дальше подключаешь модель точечно: «проверь вот этот инвариант», а не «найди все баги». В конце говоришь, чем бы это протестировал.
Главный антипаттерн: молча спросить модель и молча принять правку. Интервьюер не видит твоего мышления — минус, даже если фикс верный.
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.