Coder Doesn’t Know
307 subscribers
8 photos
5 videos
11 links
📌 О чем канал?

- про работу Senior Software Engineer в FAANG;
- о том;
- о сём.
Download Telegram
Как меня полгода в Google собеседовали [1/4]

Все началось зимой 2024 года, а именно в январе, когда я пытался попасть на интервью в Google, но уже 5 раз был отклонен на этапе скрининга резюме на позицию SWE (Software Engineer). SWE — это именно то, чем я занимаюсь последние 8+ лет. В то же время я услышал от одного из своих знакомых, что Google более охотно отвечает на заявки на позиции SRE (Site Reliability Engineer). Если вы не против, пока не будем останавливаться на разнице между SRE и SWE; расскажу как-нибудь в другой раз, если будет интересно. Хотя SRE и не совсем моя тема, я все-таки решил испытать удачу и ради интереса попробовать пройти собеседование.

К тому моменту я уже получил job offer от Uber в Амстердаме, принял его и даже не ожидал, что Google все-таки ответит, ведь накануне было уже 5 отказов. Те, кто подавались в Google через реферала, знают, что одна реферальная ссылка работает на три позиции, на которые можно податься в течение месяца, а потом наступает фриз, через месяц можно попросить реферала подать тебя еще раз. Это была уже вторая рефералка, и 2/3 попыток были отвергнуты. Тогда-то я и решил податься на Senior Software Engineer, Site Reliability Engineering.

И о чудо! Я увидел, что в моем календаре появился "coffee chat" с рекрутером из Google на 4 января 2024 года…

#experience #google
🔥7👏3😁32👍1
Как меня полгода в Google собеседовали [2/4]

Если вы не знаете, процесс интервью в big tech компаниях обычно примерно одинаковый. К примеру, я подавался на Senior Software Engineer, Site Reliability Engineering, и процесс примерно следующий:
1. Звонок с рекрутером, в котором проверяется ваша адекватность, и вам рассказывают о следующих этапах. Возможно, проверят вашу мотивацию, спросив, почему Google и т.д.
2. Technical screening, по факту это ничем не отличающийся раунд по алгоритмам, который будет у вас на онсайт, где нужно будет решить 1 или 2 алгоритмические задачи в течение 45 минут или часа.
3. Онсайт, который обычно состоит из:
- 2-3 кодинговых интервью
- 1 интервью по системному дизайну
- 1 поведенческого интервью (или по leadership principles у Google).
Онсайт в доКовидные времена проходил оффлайн, то есть компания покупала вам билеты и спонсировала визу. После этого вы летели в страну, где находится офис, и в течение дня проходили все круги онсайт интервью, а именно 4+ интервью с перерывом на обед где-то посередине.
Сейчас же всё проходит онлайн, и можно попросить разбить интервью на несколько дней, что я бы и посоветовал сделать. После большого количества интервью с Amazon, Google, Meta, Uber и т.д. я понял, что для меня идеально разбить собеседования так, чтобы было 2 интервью в день. К примеру, если разбить интервью так, чтобы было 1 собеседование в день, то придётся проходить онсайт всю неделю, что сложно (хотя с Uber я так и сделал, это было стрессово, но эффективно 🤔). Если пройти все собеседования за один день, то уже на третьем ты нереально вымотан и тебя не очень волнует, как ты “выступишь” (но из плюсов — не успеваешь волноваться перед собеседованием 😂).
4. Team matching, где вы общаетесь с менеджерами проектов и проверяете, подходите ли вы друг другу. Количество team matching интервью может быть больше одного. После этого, если вы понравились какой-нибудь команде и вам она приглянулась, то есть у вас произошел match , ваш профиль со всеми результатами собеседований и отметкой о найденной команде отправляется в комитет по найму, и они принимают финальное решение: брать вас или не брать.

Как это проходило у меня:
Как я уже говорил, мне был назначен “coffee chat” с рекрутером из Google на 4 января, на котором рекрутер из лондонского офиса рассказала о дальнейших шагах, не спросив ничего про мой опыт и мотивацию. Мне было только рассказано про последующие шаги и упомянуто, что если я не пройду на Senior позицию, то предложения о работе на уровень ниже я не получу. В то время, как я уже говорил, я получил письменное предложение о работе от Uber и не особо переживал насчет того, как пройдут собеседования, но всё-таки где-то в глубине души я понимал, что Google — это та самая земля обетованная.

Мне до сих пор интересно, хочу ли я туда попасть потому, что хочу там работать, или хочу показать всем, что я там работаю? Возможно, ответа на этот вопрос я не узнаю, пока там не поработаю годик-другой.
После этого мне был назначен technical screening на 1 февраля 2024 года (то есть практически через месяц), на котором меня спросили одну задачу (после интервью я нашел эту задачу на знакомом многим leetcode.com, и она была легкой сложности, представь? 🙊) плюс один follow-up вопрос (который был среднего уровня сложности). Этот этап был пройдет идеально, я бы даже сказал, я там был "на высоте" 😂.
Уже через всего 3 дня мне позвонил рекрутер и сказал, что я прошел technical screening этап и меня попросили поделиться временными интервалами для онсайта 😎

#experience #google
🔥121👏1
Как меня полгода в Google собеседовали [3/4]

Как я уже говорил, на онсайте обычно около 4-5 интервью. У меня же их было шесть с половиной.
Да, так случилось, что я не идеально прошел одно из кодинговых интервью, и мне предложили его пересдать (что для меня тоже было открытием, так как я думал, что если нет, то сразу выгонят/заблокируют/ещё и родителям расскажут). Итак, как я уже говорил, предыдущее интервью было 1 февраля 2024 года, а первое онсайт интервью — аж 26 февраля, и началось оно, скажем так, не очень.

Идем по порядку:

1. Дизайн Систем. Представьте, я сижу утром, завтракаю 🍳, ещё не проснулся и вижу письмо от рекрутера с вопросом, собираюсь ли я подключиться к интервью или нет. И тут я осознаю, что не посмотрел таймзону. Я сразу же подключился, но собеседующего уже не было 😬. Я написал рекрутеру с просьбой перенести собеседование, но мне было сказано, что собеседующий сейчас зайдет. Собеседующий зашел, я извинился за это, и мы начали. Само собеседование шло средне, из-за того, что еще 30 минут назад я спал 💤, а теперь проектирую дизайн систем.

2. Кодинг №1. Это собеседование было в тот же день, и в этот раз я сверил часы!! Это был 45-минутный кодинг раунд. Я бы сказал, что это была задача уровня medium-hard, и я её решил.

3. Поведенческое интервью, оно же Leadership Principles. Собеседующий сказал, что он уже 18 лет работает в Google, на что я ответил, что он работает в Google в два раза дольше, чем я работаю в своей жизни. После этой "искрометной" шутки атмосфера была отличная. После всех этапов мне сказали, что я идеально подхожу им по их Leadership Principles.

На этом день номер один был закончен. Типичный день программиста: прерванный завтрак на 3 подряд собеседования, 8 часов работы и вечер, проведенный в лежании/смотрении в потолок со звоном в ушах.

Окей, на следующий день мне предстояло еще 2 собеседования.

4. Кодинг №2. Я долго не мог понять суть задачи из-за того, что всё ещё страдаю в слушании разных акцентов, но когда понял, решил её за минут семь. Главное здесь было, что я не переставал пытаться понять смысл задачи и в результате разобрался. Думаю, это один из green flags показывающий, что ты готов искать решение даже, если требования не понятны от слова совсем.

5. И наконец, Кодинг №3, где мне дали хардовую задачу по Dynamic Programming 😭. Те, кто готовится к собесам, знают, что это за мучение. Я бы сказал, что решил задачу на 80%, но немного не хватило.

Думаю, это собеседование + дизайн систем с просони заставили усомниться во мне, и я получил потенциальный downgrade (то есть позицию Middle, которая на ступень ниже от той на которую я подавался) + дополнительный раунд кодинга. Я, конечно же, согласился, так как это всё было уже ради интереса (или нет?), ведь документы в Нидерланды в Uber уже готовились.

6. 11 марта мне должны были назначить Кодинг №4, но я увидел два приглашения вместо одного. Я написал насчет этого, но ответа не последовало. Вот я и решил зайти на оба. Захожу на первое, а собеседующий там, ещё и дал мне задачку, которую я решал ранее. Я сказал, что уже решал её на предыдущем собеседовании, и мне было сказано, что они вынуждены отменить собеседование и перенести на другую дату.

Я захожу на второе собеседование, а собеседующий тоже там, и мы провели этот раунд. Прошел он хорошо, я бы сказал, что решил задачу на хорошем уровне.

#experience #google
🔥14👍3🤩21👏1
Как меня полгода в Google собеседовали [4/4]

Я ПОЛУЧИЛ ОТКАЗ 😁

НО! Рекрутер сказал, что мы посмотрим, есть ли позиции на уровень ниже, и если я готов, то можем попытаться, на что я ответил: “А давайте”. Потом они пропали на несколько месяцев. Я уже забыл, что собеседовался, переехал, начал работать на новом месте. И тут мне пишут: “Яков, мы нашли тебе несколько команд, посмотрели твои результаты, и нас устраивает, давай созвонимся”. После этого мне назначили два интервью с менеджерами команд в Ирландии 🇮🇪.

Поиск команды или Team Matching 1️⃣:
Так как позиция была на Software Engineer, SRE, а не просто Software Engineer, я сразу спросил, сколько процентов времени в день вы кодите. Получил ответ — меньше 10%, хотя по канонам Google, описанным в их книге про SRE, подразумевается, что кодинга должно быть не меньше 50%. Если его меньше, то команду расширяют и/или перераспределяют, чтобы увеличить процент. Увы, это не всегда соблюдается, так как работа различается кардинально.

Поиск команды или Team Matching 2️⃣:
На втором интервью мне уже сказали процент получше — больше 50%, на что я обрадовался, так как прекращать кодить пока что не хочется. У нас получился классный разговор, как о Google, Ирландии, так и вообще обо всем.

После двух звонков мы поговорили с рекрутером, и я сказал, что мне понравилась вторая команда. Рекрутер в свою очередь спросил ту команду обо мне, и я им тоже понравился! Разве это не чудо?!

И наступил последний этап (Какой это уже по счету?). Это процесс принятия решения комитетом по найму. Не буду тянуть:

Я ОПЯТЬ ПОЛУЧИЛ ОТКАЗ 😂

Это был последний шаг, и увы, удача повернулась ко мне не лицом. Но шанс был велик. Обычно, если команда найдена, скорее всего тебя берут, но в моем случае это не произошло.

Вот так мне и не пришлось лежать/смотреть в потолок с муками выбора между Google 🔍 и Uber 🚗! Рекрутер сказал, что мы попробуем через три месяца еще раз, так как наступает период заморозки, который обычно больше трех месяцев, но в моем случае они готовы начать заново ровно через три месяца и пропустить Leadership Principles (оно же поведенческое), так как я уже подхожу.

Скоро продолжим, а пока что можно немного пожить без адреналина в процессе собеседований. Наверное...

#experience #google
🔥15👍3🤯3🆒2
Начни отсюда! 🤔

Я работаю на позиции Senior Software Engineer в одной из FAANG компаний, а свою full-time карьеру в роли Software Engineer 👨‍💻 я начал в 2015 году (в 2014, если учитывать опыт интерна). Также, я являюсь ex-Uber SWE.


О чём же канал?
На канале будем обсуждать разное:
1. собеседования в FAANG и Big Tech: как они проходят, лайфхаки, разбор задач и проведение кодинг-марафонов;
2. интересное из АйТи;
3. личные переживания;
4. релокацию;
5. как балансировать между перформансом и гармонией в душе ;
6. ну и конечно же, как приготовить лучшую Шакшуку 🍳🍅 в мире 😄.

Теги, по которым можно ориентироваться (я обещаю, они будут пополняться ):
#experience — опыт прохождения интервью мною и моими друзьями;
#google — все, что происходило в наших сложных тинейджерских отношениях с Гуглом 😂:
Часть 1,
часть 2,
часть 3,
часть 4;
#uber — как работается SWE в Uber 🛻.
#travel — покатушки по интересным местам ✈️.
#helpstrayanimals — помогаем животным 😼.

Очень рад видеть тебя здесь! 🫶
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥4👏2👨‍💻2
☠️ Как я завалил 6-е интервью в Apple

У меня было 5 идеально пройденных интервью в Apple:
Algo section — отлично!
System design — супер!
ТРИ поведенческих интервью, где мы обсудили все на свете — тоже зачет!

Фидбэк? Цитирую: "the interview feedbacks have been really positive with the hiring manager and the team". Уже почти достаю шампанское, но… выбрали не меня 🤔. Вместо этого мне предложили рассмотреть другую команду в той же доменной области. Ну окей, почему бы и нет?

Прихожу на интервью с новым hiring manager, жду типичный разговор про опыт, цели команды и мои ожидания. А мне выдают:
🤨 "Расскажи-ка, как работает garbage collector в Java?"

На секунду завис. Да, я хорошо это всё знал, когда активно проходил интервью на Java разработчика лет 5 назад, но, к сожалению или счастью, наш мозг забывает то, что используется редко. В момент мой мозг такой:
😅 "Ну… мусор собирается…"
🤡 "Как и мои мечты о работе в Apple…"

Про каждый интервью раунд в Apple 🧃 напишу немного позже, а пока что в честь этого эпичного фейла 🫠 объявляю новую рубрику: разбор Java вопросов для интервью.

Всё это дело будет под тегом #java и последовательность постов будет закреплена в этом или одном из последующих постов.

Главная цель — собрать набор статей, с которыми можно освежить знания и спокойно идти на интервью на Java Software Engineer.

P.S. Если кто-то тоже попадал в такие ситуации — давайте поплачем вместе 😆

#apple #experience
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12😢8🤪432🤯2🤣2🥰1
Как программист получил оффер на позицию Senior Software Development Engineer в М 🪟📎

Часть вступительная, или как всё началось с реферала.

Все процессы собеседований в Big Tech (или MAANG+) начинаются одинаково 🥱. У тебя есть два варианта:

1️⃣ Податься самому

2️⃣ Попросить кого-то, кто уже работает в компании, зарефералить тебя.
(Инсайт: можно найти совершенно незнакомого человека в LinkedIn, который работает в условном Microsoft, и просто вежливо попросить реферал. У меня уже есть шаблон такого сообщения - могу скинуть, если нужно 😉)

Мне больше подходил второй вариант. Один мой хороший знакомый сказал, что у него есть приятель, работающий в М 📎 в Праге 🍺 — и там как раз ищут программистов. Я написал ему, попросил зарефералить, и буквально через несколько дней мне написали из М с просьбой назначить время для initial call с рекрутером 🍷.

На этом звонке обычно проверяют твою адекватность, опыт, уровень (на который тебя будут подавать), и то, как ты отвечаешь на общие вопросы. Также могут спросить, что тебя мотивирует, почему именно Microsoft, и задать другие non-STAR вопросы.

Через несколько дней после этого мы снова созвонились, и меня попросили сообщить, когда я смогу пообщаться с hiring manager’ом. Если не ошибаюсь, это был Principal Engineering Manager 😎.

Забавно, но уровни в Microsoft 🕹 и Uber 🚘 отличаются.
В Uber — Junior → Middle → Senior → Staff → Senior Staff → Principal.
А в М — Junior → Middle → Senior → Principal.
То есть Principal в М — это примерно как Staff в Uber. Не знаю, зачем я это рассказываю 😄.

Дальше расскажу, как прошёл этот звонок!

#interview #bigtech #maang #experience
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥51🤪1
Как программист получил оффер на позицию Senior Software Development Engineer в M 🪟📎

Technical Screen с hiring-менеджером или раунд номер 2.

Это был 30-минутный звонок через (угадайте что?) Teams. К сожалению, Skype канул в лету 😭.

За эти 30 минут у меня спросили:

1️⃣ Расскажите о проекте, которым вы больше всего гордитесь 👨‍💻.
Тут обычно несколько вариантов: либо самый масштабный проект — например, работая в Uber 🚗 над высокими нагрузками 🏋️‍♂️, я могу рассказать о текущем проекте, где я отвечаю за trip receipts почти 6 миллионов водителей и курьеров.
Либо — проект, который был важен именно для меня. Это может быть небольшой проект/сайт/приложение, которое ты сделал(а) в начале карьеры, и которой пользовались 30 клиентов. Но ты видел(а), как это реально облегчает им жизнь, и это вдохновило тебя заниматься тем, чем ты занимаешься.

2️⃣ Почему M 📎? (ОПЯТЬ!)
На этот вопрос может быть 7 причин 😅 (шучу, всего несколько). Личные, профессиональные — и, возможно, немного эмоциональные.
Ты мог быть C++ или C# разработчиком, который большой фанат этих языков. Или в детстве играл в первые игры на Windows XP и до сих пор не можешь забыть эти чувства, которые были получены благодаря M 🤫.

3️⃣ Спустя 25 минут собеседования (а я напоминаю: оно должно длиться 30 минут), меня спрашивают:

«А готов ли ты решить задачку?»

Конечно, да. Будто у меня есть выбор 😃
И знаешь что? Мне дали Two Sum.

Для тех, кто не извращается с LeetCode — это самая первая задачка, которую ты решишь на платформе. Вот, кстати, ссылка на неё:
👉 https://leetcode.com/problems/two-sum

Я реально удивился, что мне задали эту задачу. Кто вообще спрашивает первую задачу с LeetCode на интервью на сеньора?..

В результате меня позвали на следующий этап, который называется Hiring Event — но об этом в одном из следующих постов 🚨

#interview #bigtech #maang #experience
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15😁32
Как программист получил оффер на позицию Senior Software Development Engineer в М 🪟📎

Hiring Event, или раунд номер 3️⃣.

М называет свои on-site интервью Hiring Event 😎, который проводится за один день. Всего — 4 интервью, каждое по часу, с перерывами от 30 минут до часа между ними.
Изначально я просил разбить собеседования на два дня, но мне отказали ☹️.

Вообще, я вижу 3 варианта проведения онсайт-интервью:

1️⃣Одно собеседование в день. В нашем случае это заняло бы 4 дня.
: если завалишь одно, есть время восстановиться и показать себя на следующих. Не будет лавины провалов 😱.
: каждый день — стресс. Почти вся неделя уходит на переживания.

2️⃣Разбить на два дня, например, 2+2. Если собеседований 5 — то 2+3 и т.д.
: ко второму дню уже будешь «разогрет», восстановятся силы после первого дня.
: завалил первое интервью — велика вероятность завалить и второе.

3️⃣Всё за один день.
: быстро и без мучений, стресс только перед первым собеседованием. Дальше процесс идет, как по маслу.
: каскадный провал. Если завалил одно — трудно собраться для следующего.

В итоге было 4 собеседования за один день. Процесс напоминал Amazon: каждый раунд — 1 час, из которых 30 минут — поведенческое интервью, и 30 — техническое.

1️⃣Поведенческое + дизайн системы:
– Рассказал о себе, конфликтах, работе в разных тайм-зонах, как я фичи «деливерю» и т.д.
– Через 30 минут перешли к дизайну: надо было спроектировать систему с нуля при минимальном бюджете. Звучало интересно — про бюджет спросили впервые.

Перерыв 30 минут — и снова в бой.

2️⃣поведенческое + OOD:
– 3–4 поведенческих вопроса.
– Потом перешли к OOP/OOD.

Перерыв 30 минут.

3️⃣Поведенческое, планировали на час, уложились в 40 минут:
– Много вопросов про тимлидерство, снова про конфликты, опыт, и чем я больше всего горжусь в своей карьере.

Перерыв один час + 20 сохранившихся минут с предыдущего собеседования.

4️⃣Финальный раунд: поведенческое + алгоритмы:
– Снова 3–4 поведенческих вопроса (да, опять).
– 20 минут на алгоритмы. Эту задачу за последние полгода встречали уже 8 раз (по крайней мере так написано на LeetCode). Найти её можно конечно же на LeetCode.
– К счастью, я решил её оптимально! Интервьюер был очень доброжелателен и дал несколько подсказок по ходу.

После каждого интервью у меня было примерно 5 минут, чтобы задать вопросы про компанию. В итоге я узнал много нового: про офис в Праге 🇨🇿, работу в М 📎, онколлы 📞 и не только.

А дальше началось ожидание...

#interview #bigtech #maang #experience
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👨‍💻3🎉2👍1