Технологии

[Перевод] Сравнение собеседований в 8 крупных технологических компаниях

В новом переводе от команды Spring АйО Пунит Патвари недавно принял предложение о работе в Atlassian на должность ведущего инженера-программиста (Principal Software Engineer). За три месяца он прошёл более 60 собеседований в 11 компаниях, как он мне рассказал, и отказался ещё от трёх процессов после того, как согласился на предложение от Atlassian — включая собеседование в Meta. После всего этого он сравнил процессы собеседований в крупнейших компаниях: Компания + Целевой уровень | Тип собеседования | Выводы Пунита | Google – Старший инженер (L5) | Технический скрининг: 2 глубоких алгоритмических задачи (например, кольцевой буфер и эффективное слияние деревьев) | «Иногда нужно сначала показать широту знаний, а не глубину». | Uber – Старший инженер (L5A) | Технический скрининг: 2 сложных алгоритмических задачи (включая динамическое программирование и оптимизацию затрат) | «Не каждое интервью бывает справедливым, но приходится играть с теми картами, что раздали». | Amazon – Ведущий инженер (L6) | Кодинг-интервью: высокий порог сложности, много конкретики. Принципы лидерства включены во все интервью. | «На этом уровне хотят понять, будете ли вы тем, кто движет изменения, а не просто пишет код». | Walmart – Ведущий инженер | Кодинг: достаточно базовый уровень. Архитектура: внимание к низко- и высокоуровневым аспектам. | «Предугадывать, что может пойти не так, и показывать мышление в серых зонах — это оказалось полезным». | Atlassian – Принципал-инженер | Кодинг: основные структуры данных и алгоритмы. Акцент на проектирование масштабируемых решений. | «Они ценят целостное, сквозное мышление, а не только техническую корректность». | Salesforce – Ведущий технический специалист (LMTS) | Скрининг: HackerRank. Архитектурные интервью были более сложными. | «Можно почувствовать, когда компании действительно важно понять, как ты думаешь». | Confluent – Старший инженер-программист 2 | Очень интеллектуально напряжённое интервью: несколько раундов по алгоритмам, архитектуре, совместимости с культурой. Глубокое погружение в отказоустойчивость, узкие места, масштабируемость. | «Важно не один раз выстрелить, а быть стабильно сильным на всех этапах». | Deliveroo – Ведущий инженер | Скрининг: HackerRank. Кодинг: спроектировать ограничитель скорости. Архитектурное интервью в глубину. | «Хотя я нервничал, подробное объяснение своих мыслей всё изменило. Хорошие интервью — это когда тебя понимают». | Ещё несколько наблюдений, которыми Пунит поделился со мной: Amazon: раунд с руководителем найма в Amazon был одним из самых необычных, которые я когда-либо проходил. Мы так увлеклись обсуждением, что собеседование длилось 160 минут вместо запланированных 60! Нам пришлось сделать перерыв в процессе интервью. Atlassian: раунды, посвящённые лидерству и ценностям компании (Leadership Craft и Values), сыграли ключевую роль в принятии решения о присвоении мне уровня Principal. Конечно, собеседование по системному проектированию также было важным. В Atlassian большое внимание уделяется лидерским качествам на уровне Principal. Salesforce: раунд по системному проектированию был напрямую связан с реальными задачами на будущей должности. Это была задача по миграции, в которой интервьюер хотел понять, смогу ли я взять на себя ответственность за проект от начала до конца, поставив в центр внимания клиента. Комментарий от Евгения Сулейманова Миграции - прекрасная задача для Principal, которая крайне хорошо может показать уровень кандидата. Вариант "скелета ответа", который я бы ожидал на уровне PSE: - стратегия: Strangler Fig, поэтапный backfill, canary deployment; - совместимость: версия контрактов/схем (semver/AVRO/DDL), dual-read/dual-write, идемпотентность и дедупликация; - данные: CDC/Outbox, порядок событий, reindex/ретрай-политики, политика TTL; - надежность: SLO, план отката; - наблюдаемость: метрики/логирование/трейсы для "старого/нового" пути, сравнение отклонений; - операционка: окна запуска, нагрузочное тестирование до/после, оценка TCO. Confluent: когда я говорю, что это было самое интеллектуально напряжённое собеседование, я имею в виду, что каждая навык проверялся в двух раундах! То есть: два раунда по структурам данных и алгоритмам (DSA), два по системному проектированию и два поведенческих интервью. Я не могу переоценить важность поведенческих собеседований на уровнях Staff и выше. Успешное прохождение этих интервью стало определяющим фактором в получении офферов на позиции Staff и Principal. Разумеется, важно также показать хорошие результаты в кодинге и системном проектировании, но, по моим ощущениям, именно поведенческие раунды становились решающими при определении уровня и принятии решения о предложении. Вот несколько моментов, которые особенно выделяются в рассказе Пунита о собеседованиях в ведущих технологических компаниях: Алгоритмические интервью по программированию есть везде! На позиции уровня Senior и выше необходимо быть в них действительно сильным, включая сложные темы, такие как динамическое программирование. В статье «Как опытные инженеры выходят из тупика на кодинговых интервью» мы подробно разбираем, как успешно проходить такие раунды. Комментарий от Евгения Сулейманова На уровнях Senior/Staff/Principal цель кодинга - не столько "знать алгоритмы", сколько показать инженерное мышление под давлением: формулирование ограничений, декомпозиция и обоснованные компромиссы. Я бы добавил мини-рубрику "как демонстрировать зрелость на кодинге": - начать с проговаривания требований/границ (N, latency/memory budget, детерминизм); - быстро накидать базовое решение и как минимум один альтернативный путь с явной сложностью O(..)/памятью; - озвучить риски/edge-cases (дубликаты, переполнения, пустые входы, порядок, стабильность); - связать прием с прод-паттерном (k-way merge -> слияние логов/фидов и т.д.). Это даст сигнал о системном мышлении кандидата, даже на чистых DSA. Собеседования сложные и отнимают много времени. Даже после того как Пунит получил офферы, ни одна компания не сократила для него процесс собеседований. Ему пришлось отказаться ещё от трёх — включая Meta — потому что к тому моменту, когда до них дошла бы очередь, он уже принял предложение от Atlassian. Даже в сложные времена топ-кандидаты остаются востребованными. Мы уже писали о том, насколько непрост рынок труда в сфере технологий для соискателей, но Пунит прошёл собеседования в 11 компаниях и получил 6 предложений. Его резюме должно было производить сильное впечатление, чтобы пройти отбор: более 10 лет опыта и позиция Senior Software Engineer в Microsoft. К тому же он пришёл на собеседования очень хорошо подготовленным. Неудача может настигнуть в любой момент. Опыт Пунита на собеседовании в Uber, похоже, был просто неудачным: интервьюер показался негибким и не настроенным на диалог. Возможно, у него был тяжёлый день или он просто хотел поскорее закончить. А может быть, это был пример так называемого «антицикла интервьюера», о котором писал Стив Йегги. Поздравляем Пунита с новой позицией в Atlassian и спасибо ему за то, что поделился этими ценными наблюдениями! Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Фильтры и сортировка