Вышел с телефонного собеседования с Amazon. Длительность 1 час. Меня собеседовала девушка которая работает в той команде куда я подаюсь. Она немного рассказала о себе.
Как это было?
20-30 минут мы обсуждали мой прошлый опыт. Спрашивала когда я смог закрыть задачу в сжатые сроки, как я смог, почему я принимал те или иные решение. Спрашивала времена когда я принимал неверные решения на работе. Тут очень важно показать свои LP (погуглите “Amazon leadership principles”). Если вы рассказываете про неудачи очень важно рассказать как вы смогли решить эту проблему и какие уроки для себя вынесли. Нужно рассказывать про то что делали именно вы, поэтому важно говорить “I” а не “We”. Я делал то, я делал это. Это актуально и для других компаний.
Подробнее про LP в Amazon: https://medium.com/@scarletinked/are-you-the-leader-were-looking-for-interviewing-at-amazon-8301d787815d
Потом мы перешли в редактор кода, я выбрал Python. Девушка, как я понял, работала больше с Java, она не знала всех фич Python поэтому очень много спрашивала про то как работают те или иные структуры данных. Поэтому очень важно знать как что работает.
Было что-то на подобии этих задач: https://leetcode.com/discuss/interview-question/344650/Amazon-Online-Assessment-Questions (Easy, Medium level)
1. Я спросил несколько уточняющих вопросов и приступил к описанию решения.
2. Рассказал про мое решение, расписал разные подходы, плюсы и минусы подходов.
3. Она сказал что это норм решение, попросила написать код.
4. Я начал писать код, она начала спрашивать как это работает, как то работает, это немного начало тормозить процесс. Но я старался быстро отвечать ей, чтобы не терять время.
5. Некоторые второстепенные вещи я упускал, чтобы не терять время. К примеру, я говорил “”А тут я вызываю функцию которая будет делить строку на слова” и оставлял пустую функцию. Она сказала что ей норм. Спросите у чувака норм ли ему, или он хочет подробностей. Это касается только каких-то простых вещей которые не влияют на ваш алгоритм.
6. Закончил кодить, пока кодил оставлял очень много комментариев в коде и расписывал на примере, чтобы ей было понятнее.
7. Посчитал Space and Time complexity. Тут я затупил и неверно посчитал один цикл, она меня исправила. Но в конце общее время я написал верно.
8. Сказал что нужно потестить код. Написал несколько тест кейсов, пробежался по ним, линия за линией, проверил что все проходит.
9. Потом я спросил нужно ли дописывать пустые функции которые я оставлял. Она сказала что не обязательно. Я забил.
10. Она еще поспрашивала еще про структуры данных в Python и о том как они работают, почему я использовал это, а не это. К примеру, почему я использовал Min Heap c негативным ключом вместо Max Heap. Я объяснил что это проще написать, а чтобы сделать Max Heap как подобает мне нужно будет заглянуть в документацию Python, так как я не испольную Heap каждый день. Он сказала ок.
11. Потом она спросила как скейлить мой алгоритм если у нас будут миллиардные данные.
12. Я сказал что буду юзать несколько серверов и consistent hashing чтобы распределять данные. Я хотел рассказать еще, он у нас заканчивалось время и она меня прервала.
13. На этом кодинг часть закончилась.
Она спросила есть ли вопросы. Я что-то спросил, она рассказала, я пошутил что-то про работу из дома с детьми, мы посмеялись и на этом все закончилось.
Как я себя чувствую?
Задача была достаточно легкой и я ее быстро решил. Я рассказал про Time and Space complexity, рассказал про альтернативные решения, привел тест кейсы, старался избегать пауз, думал в слух и вообще старался вести разговор и быть активным. В вопросах про опыт я пытался показать свои лидерские навыки, инициативность. Что касается технических вещей старался рассказывать в подробностях, в чем была проблема и как конкретно я ее решил. Поэтому ощущения после собеседования хорошие и с вероятностью в 90% я думаю что я пройду на онсайт. Я чувствую себя очень уверенно и буду сильно удивлен если я не пройду на следующий этап.
#story #interviewtip #amazon #behavioral
Как это было?
20-30 минут мы обсуждали мой прошлый опыт. Спрашивала когда я смог закрыть задачу в сжатые сроки, как я смог, почему я принимал те или иные решение. Спрашивала времена когда я принимал неверные решения на работе. Тут очень важно показать свои LP (погуглите “Amazon leadership principles”). Если вы рассказываете про неудачи очень важно рассказать как вы смогли решить эту проблему и какие уроки для себя вынесли. Нужно рассказывать про то что делали именно вы, поэтому важно говорить “I” а не “We”. Я делал то, я делал это. Это актуально и для других компаний.
Подробнее про LP в Amazon: https://medium.com/@scarletinked/are-you-the-leader-were-looking-for-interviewing-at-amazon-8301d787815d
Потом мы перешли в редактор кода, я выбрал Python. Девушка, как я понял, работала больше с Java, она не знала всех фич Python поэтому очень много спрашивала про то как работают те или иные структуры данных. Поэтому очень важно знать как что работает.
Было что-то на подобии этих задач: https://leetcode.com/discuss/interview-question/344650/Amazon-Online-Assessment-Questions (Easy, Medium level)
1. Я спросил несколько уточняющих вопросов и приступил к описанию решения.
2. Рассказал про мое решение, расписал разные подходы, плюсы и минусы подходов.
3. Она сказал что это норм решение, попросила написать код.
4. Я начал писать код, она начала спрашивать как это работает, как то работает, это немного начало тормозить процесс. Но я старался быстро отвечать ей, чтобы не терять время.
5. Некоторые второстепенные вещи я упускал, чтобы не терять время. К примеру, я говорил “”А тут я вызываю функцию которая будет делить строку на слова” и оставлял пустую функцию. Она сказала что ей норм. Спросите у чувака норм ли ему, или он хочет подробностей. Это касается только каких-то простых вещей которые не влияют на ваш алгоритм.
6. Закончил кодить, пока кодил оставлял очень много комментариев в коде и расписывал на примере, чтобы ей было понятнее.
7. Посчитал Space and Time complexity. Тут я затупил и неверно посчитал один цикл, она меня исправила. Но в конце общее время я написал верно.
8. Сказал что нужно потестить код. Написал несколько тест кейсов, пробежался по ним, линия за линией, проверил что все проходит.
9. Потом я спросил нужно ли дописывать пустые функции которые я оставлял. Она сказала что не обязательно. Я забил.
10. Она еще поспрашивала еще про структуры данных в Python и о том как они работают, почему я использовал это, а не это. К примеру, почему я использовал Min Heap c негативным ключом вместо Max Heap. Я объяснил что это проще написать, а чтобы сделать Max Heap как подобает мне нужно будет заглянуть в документацию Python, так как я не испольную Heap каждый день. Он сказала ок.
11. Потом она спросила как скейлить мой алгоритм если у нас будут миллиардные данные.
12. Я сказал что буду юзать несколько серверов и consistent hashing чтобы распределять данные. Я хотел рассказать еще, он у нас заканчивалось время и она меня прервала.
13. На этом кодинг часть закончилась.
Она спросила есть ли вопросы. Я что-то спросил, она рассказала, я пошутил что-то про работу из дома с детьми, мы посмеялись и на этом все закончилось.
Как я себя чувствую?
Задача была достаточно легкой и я ее быстро решил. Я рассказал про Time and Space complexity, рассказал про альтернативные решения, привел тест кейсы, старался избегать пауз, думал в слух и вообще старался вести разговор и быть активным. В вопросах про опыт я пытался показать свои лидерские навыки, инициативность. Что касается технических вещей старался рассказывать в подробностях, в чем была проблема и как конкретно я ее решил. Поэтому ощущения после собеседования хорошие и с вероятностью в 90% я думаю что я пройду на онсайт. Я чувствую себя очень уверенно и буду сильно удивлен если я не пройду на следующий этап.
#story #interviewtip #amazon #behavioral
Medium
Interviewing at Amazon — Leadership Principles — Now Including the 2 New Principles
Disclaimer: I’m not representing Amazon in any way with my posts, opinions written here are strictly my own.
❤1👍1😁1
Amazon дали мне ответ по Phone Interview. И по итогу я прохожу на следующий этап - Onsite interview session.
Если бы не гребенный COVID-19 можно было бы слетать в Ванкувер за счет компании и посетить их офис. Но плюс в том что не надо делать визу и можно будет пройти собеседование онлайн.
Онсайт будет длиться 4 часа, 4 интервью по часу. HR выслала мне кучу материла для подготовки к собеседованию. Судя по тому что она мне тут накидала будет Coding Interview, System Design Interview, Object Oriented Design и LP.
Я так полагаю у меня есть около 2-4 недель на подготовку. Поэтому нужно будет составить план действий. На данный момент мой самый слабый пункт это System Design, нужно будет сделать на него упор.
System Design:
⁃ Нужно будет пройти до конца курс на algoexpert.io по System Design.
⁃ Пройтись по роликом Gaurav Sen и Tushar Roy на YouTube.
⁃ Почитать курс Grokking the System Design Interview на educative.io.
⁃ Возможно назначить пару сессий на Pramp.
⁃ Много рисовать и чертить разные системы и практиковаться.
⁃ Нужно будет подумать о расписании.
Coding Interview:
⁃ Погуглить что спрашивают на онсайт.
⁃ Продолжить решать задачи на Leetcode, 3-4 задач в день уровня Easy/Medium. Возможно нужно будет взять premium подписку, чтобы получить доступ к вопросам компании.
⁃ Порешать задачи на algoexpert.io.
Object Oriented Design:
⁃ Почитать Cracking the Coding Interview. Там есть крутые примеры.
⁃ Поискать курсы на YouTube.
⁃ Попрактиковаться, думаю тут не должно быть больших проблем.
LP:
⁃ Нужно проговорить и подготовить истории о прошлом опыте.
⁃ Стараться брать те истории которые хорошо и детально знаю или те что были недавно и те что свежи в памяти.
⁃ Пройтись по историям и подтянуть технические детали. Вспомнить прошлые проекты и разобраться в чем была соль.
⁃ Почитать про Amazon LP.
⁃ Провести воображаемое интервью с самим собой как делал Барни.
Из других новостей, знакомые которые тоже готовятся к собеседованиям пригласили меня на онлайн сессию по System Design. Было очень круто, почти как настоящее собеседование. Был один интервьюер и 4-5 ребят в роли кандидатов, обсуждали как построить мессенджер на подобии WhatsApp. Сессия длилась около 2 часов так как мы очень сильно тормозили и порой не могли найти общий подход к решению той или иной проблемы. Я зачастую молчал так как не знал что говорить. Интервьюер молодец, пинал молчунов и призывал быть всем активнее. Нужно будет повторить.
#story #interviewtip #amazon #algo #behavioral #systemdesign
Если бы не гребенный COVID-19 можно было бы слетать в Ванкувер за счет компании и посетить их офис. Но плюс в том что не надо делать визу и можно будет пройти собеседование онлайн.
Онсайт будет длиться 4 часа, 4 интервью по часу. HR выслала мне кучу материла для подготовки к собеседованию. Судя по тому что она мне тут накидала будет Coding Interview, System Design Interview, Object Oriented Design и LP.
Я так полагаю у меня есть около 2-4 недель на подготовку. Поэтому нужно будет составить план действий. На данный момент мой самый слабый пункт это System Design, нужно будет сделать на него упор.
System Design:
⁃ Нужно будет пройти до конца курс на algoexpert.io по System Design.
⁃ Пройтись по роликом Gaurav Sen и Tushar Roy на YouTube.
⁃ Почитать курс Grokking the System Design Interview на educative.io.
⁃ Возможно назначить пару сессий на Pramp.
⁃ Много рисовать и чертить разные системы и практиковаться.
⁃ Нужно будет подумать о расписании.
Coding Interview:
⁃ Погуглить что спрашивают на онсайт.
⁃ Продолжить решать задачи на Leetcode, 3-4 задач в день уровня Easy/Medium. Возможно нужно будет взять premium подписку, чтобы получить доступ к вопросам компании.
⁃ Порешать задачи на algoexpert.io.
Object Oriented Design:
⁃ Почитать Cracking the Coding Interview. Там есть крутые примеры.
⁃ Поискать курсы на YouTube.
⁃ Попрактиковаться, думаю тут не должно быть больших проблем.
LP:
⁃ Нужно проговорить и подготовить истории о прошлом опыте.
⁃ Стараться брать те истории которые хорошо и детально знаю или те что были недавно и те что свежи в памяти.
⁃ Пройтись по историям и подтянуть технические детали. Вспомнить прошлые проекты и разобраться в чем была соль.
⁃ Почитать про Amazon LP.
⁃ Провести воображаемое интервью с самим собой как делал Барни.
Из других новостей, знакомые которые тоже готовятся к собеседованиям пригласили меня на онлайн сессию по System Design. Было очень круто, почти как настоящее собеседование. Был один интервьюер и 4-5 ребят в роли кандидатов, обсуждали как построить мессенджер на подобии WhatsApp. Сессия длилась около 2 часов так как мы очень сильно тормозили и порой не могли найти общий подход к решению той или иной проблемы. Я зачастую молчал так как не знал что говорить. Интервьюер молодец, пинал молчунов и призывал быть всем активнее. Нужно будет повторить.
#story #interviewtip #amazon #algo #behavioral #systemdesign
www.algoexpert.io
AlgoExpert | Ace the Coding Interviews
The leading platform to prepare for coding interviews. Master essential algorithms and data structures, and land your dream job with AlgoExpert.
👍1
Screenshot 2020-05-16 at 18.22.50.png
40.2 KB
Поучаствовал сегодня на онлайн контесте от Leetcode. Позвал братишку чтобы не было скучно и был соревновательный дух. Итог: успешно решил 3/4 задачи, занял 1356/5823 место. Потратил на решение в общем все время контеста, те 3 задачи что решил решил за 28 минут. Остальное время ушло на решение последней проблемы уровня Hard. Решение нашел, но не прошел по Time Limit. Буду читать как решали другие и вникать.
Из новостей, закинул отклик в Google, сработал реферал. Они сейчас нанимают не активно, так что не уверен что позовут, но попробовать стоит.
#story #interviewtip #algo #google
Из новостей, закинул отклик в Google, сработал реферал. Они сейчас нанимают не активно, так что не уверен что позовут, но попробовать стоит.
#story #interviewtip #algo #google
👍1
Заказал себе доску для подготовки к System Design Interview. Будет полезен также для онсайт собеседования по видео чату. Взяли за 5К тенге. За свою цену отличная штука.
#story #systemdesign #interviewtip
#story #systemdesign #interviewtip
👍1
Пару дней назад написал рекрутер из Amazon, чтобы договориться о времени онсайт собеседования. Предварительно назначили на 18 июня. Осталось чуть меньше месяца на подготовку. Также решаю по 3-4 Leetcode Easy/Medium задачи в день. Симулирую System Design Interview на доске. В последние дни думаю надо будет пробежаться по LP.
#story #amazon
#story #amazon
👍1
В среду прошел мой первый phone interview в Facebook. Интервью должно было длиться 45 минут. 5 минут на ответы и вопросы в начале, 5 минут на ответы и вопросы в конце, остальные 35 минут на решение одной задачи по программированию. Выпил стакан воды чтобы горло не пересохло за это время и взял с собой блокнот и ручку, на всякий случай.
Что было?
Подключился по видео-чату. Подключился мой интервьюер. Попросил подождать минуту. Что то там настраивал.
Потом он рассказал немного о себе. Спросил про мой опыт. Кратко рассказал о себе, по примеру Cracking the Coding interview. “Я являюсь [позиция] в [компания], в [страна] [город]. Сейчас мы разрабатываем [какой то интересный проект]. В работе используем [какие то технологии]”. Это должно быть на зубок, чтобы не терять времени.
Потом чувак сказал давай приступим к решению задачи и зашарил экран. Там у него был открыт что то типа Paint, для рисования. Он дал мне задачи на графы и деревья уровня Easy/Medium в Leetcode. Я имел опыт с этой задачей раньше. Нужно было найти какое-то максимальное значение чего-то там.
Начал объяснять решение: “Бла бла бла,… тут я буду из функции возвращать 2 переменных…”. Интервьюер приврал меня: “Зачем 2, можно же использовать глобальные переменные”. Я согласился что так будет проще и код будет чище. Он спросил а какие есть минусы у такого подхода. Я сказал что в данном контексте не вижу никаких минусов. Он добавил, а если мы будем запускать поиск для каждого поддерева в отдельном потоке? Я сказал что не думал что мы будем это делать, но если это так то будет race condition. Глобальная переменная будет меняться каждым потоком и они будут затирать значения друг друга, так что решение не будет верным. Интервьюер спросил, а как решить эту проблему? Я сказал что можно использовать locking. Указать данную переменную как общий ресурс и заключить его в lock, чтобы каждый поток записывал значение по очереди. Он согласился.
Интервьюер попросил рассказать свой алгоритм дальше. Я продолжил. Он чет не догнал меня , были сложности с коммуникацией, так как не было доски под рукой. Мы согласились что будем использовать определенную терминологию чтобы друг друга не путать. Часть решения я объяснил переведя свое решение на эту терминологию, часть начертил ручкой на блокноте которая была рядом и показал через камеру. Он вкурил что я имею ввиду.
Потом он спросил как мой алгоритм поменяется если будет не 2 поддерева, а K поддеревьев. Я сказал что тогда я буду использовать цикл чтобы найти 2 максимальных значения из всех поддеревьев и буду их суммировать, а хранить я их буду в массиве с длиной 2. Интервьюер сказал что массив может быть не самым лучшим решением для хранения. Я вспомнил что массив бронирует в памяти больше места чем требуется и упомянул это, поменял массив на 2 переменных. Интервьюер согласился.
Потом спросил насчет Space and Time complexity. Я сказал что Time Complexity будет O(n), где n это количество всех вершин. Потому что нам надо будет посетить все вершины чтобы найти наше значение. Насчет Space Complexity я немного лажанул, как я понял позже. Я сказал что потому что это бинарное дерево и на каждой итерации мы заходим на максимальную глубину дерева и храним ее в call stack, а когда выходим из глубины то убираем вершину из call stack, и того получается O(logn), где n это количество вершин. Он спросил почему это O(logn), я объяснил. Он согласился. Но, потом я понял что мое решение по Space Complexity верно только для сбалансированного дерева, и неверно для остальных. По хорошему Space complexity должен быть O(h), где h это высота дерева или глубина, кому как нравиться. Тут мой косяк. Интервьюер не стал со мной спорить.
Он предложил закодить решение. Я открыл онлайн редактор и начал писать. Код лился из моих пальцев. Потратил 5 минут. Прошелся взглядом по коду. Запустил несколько тест кейсов. Готово!
Интервьюер посмотрел, молча думал минуту. Сказал что ему все нравиться.
Я поспрашивал его про компанию и мы попрощались. Мы уложиличь в 20-30 минут вместо 45.
#story #facebook
Что было?
Подключился по видео-чату. Подключился мой интервьюер. Попросил подождать минуту. Что то там настраивал.
Потом он рассказал немного о себе. Спросил про мой опыт. Кратко рассказал о себе, по примеру Cracking the Coding interview. “Я являюсь [позиция] в [компания], в [страна] [город]. Сейчас мы разрабатываем [какой то интересный проект]. В работе используем [какие то технологии]”. Это должно быть на зубок, чтобы не терять времени.
Потом чувак сказал давай приступим к решению задачи и зашарил экран. Там у него был открыт что то типа Paint, для рисования. Он дал мне задачи на графы и деревья уровня Easy/Medium в Leetcode. Я имел опыт с этой задачей раньше. Нужно было найти какое-то максимальное значение чего-то там.
Начал объяснять решение: “Бла бла бла,… тут я буду из функции возвращать 2 переменных…”. Интервьюер приврал меня: “Зачем 2, можно же использовать глобальные переменные”. Я согласился что так будет проще и код будет чище. Он спросил а какие есть минусы у такого подхода. Я сказал что в данном контексте не вижу никаких минусов. Он добавил, а если мы будем запускать поиск для каждого поддерева в отдельном потоке? Я сказал что не думал что мы будем это делать, но если это так то будет race condition. Глобальная переменная будет меняться каждым потоком и они будут затирать значения друг друга, так что решение не будет верным. Интервьюер спросил, а как решить эту проблему? Я сказал что можно использовать locking. Указать данную переменную как общий ресурс и заключить его в lock, чтобы каждый поток записывал значение по очереди. Он согласился.
Интервьюер попросил рассказать свой алгоритм дальше. Я продолжил. Он чет не догнал меня , были сложности с коммуникацией, так как не было доски под рукой. Мы согласились что будем использовать определенную терминологию чтобы друг друга не путать. Часть решения я объяснил переведя свое решение на эту терминологию, часть начертил ручкой на блокноте которая была рядом и показал через камеру. Он вкурил что я имею ввиду.
Потом он спросил как мой алгоритм поменяется если будет не 2 поддерева, а K поддеревьев. Я сказал что тогда я буду использовать цикл чтобы найти 2 максимальных значения из всех поддеревьев и буду их суммировать, а хранить я их буду в массиве с длиной 2. Интервьюер сказал что массив может быть не самым лучшим решением для хранения. Я вспомнил что массив бронирует в памяти больше места чем требуется и упомянул это, поменял массив на 2 переменных. Интервьюер согласился.
Потом спросил насчет Space and Time complexity. Я сказал что Time Complexity будет O(n), где n это количество всех вершин. Потому что нам надо будет посетить все вершины чтобы найти наше значение. Насчет Space Complexity я немного лажанул, как я понял позже. Я сказал что потому что это бинарное дерево и на каждой итерации мы заходим на максимальную глубину дерева и храним ее в call stack, а когда выходим из глубины то убираем вершину из call stack, и того получается O(logn), где n это количество вершин. Он спросил почему это O(logn), я объяснил. Он согласился. Но, потом я понял что мое решение по Space Complexity верно только для сбалансированного дерева, и неверно для остальных. По хорошему Space complexity должен быть O(h), где h это высота дерева или глубина, кому как нравиться. Тут мой косяк. Интервьюер не стал со мной спорить.
Он предложил закодить решение. Я открыл онлайн редактор и начал писать. Код лился из моих пальцев. Потратил 5 минут. Прошелся взглядом по коду. Запустил несколько тест кейсов. Готово!
Интервьюер посмотрел, молча думал минуту. Сказал что ему все нравиться.
Я поспрашивал его про компанию и мы попрощались. Мы уложиличь в 20-30 минут вместо 45.
#story #facebook
❤1👍1
Какие ощущения ?
Я вышел с собеседования уверенным. Но потом анализируя свои ответы понимал что сделал не правильно. В некоторых местах я упускал edge cases, неверно посчитал Space Complexity, неверно выбирал структуры данных для хранения и т.д. Но радует что я смог написать правильное и рабочее решение. Так же я принимал подсказки от интервьюера, что есть хорошо. Задача была несложной на рекурсию и бинарное дерево. Немного опешил от вопросов про треды, в остальном перформил уверенно. Я ставлю на то что я пройду на следующий этап на 70%, 30% что меня отошьют.
#story #facebook
Я вышел с собеседования уверенным. Но потом анализируя свои ответы понимал что сделал не правильно. В некоторых местах я упускал edge cases, неверно посчитал Space Complexity, неверно выбирал структуры данных для хранения и т.д. Но радует что я смог написать правильное и рабочее решение. Так же я принимал подсказки от интервьюера, что есть хорошо. Задача была несложной на рекурсию и бинарное дерево. Немного опешил от вопросов про треды, в остальном перформил уверенно. Я ставлю на то что я пройду на следующий этап на 70%, 30% что меня отошьют.
#story #facebook
👍2
Вышел с телефонного собеседования с Google.
Что там было?
Зашел интервьюер и дал задачу на массивы. Я задал несколько уточняющих вопросов. И начал рассказывать свое решение. Походу рассказа я задавал уточняющие вопросы и корректировал свое решение, так как условия были немного не такими как я понял. Собеседник сказал что ему нравиться мое решение и я приступил к написанию кода.
Пока я писал решение допустил много ошибок связанных с edge кейсами, но смог их поправить. Это был жирный минус, то что я не учел некоторые очевидны edge кейсы. Написал решение и посчитал Space and Time complexity.
Интервьюер дал мне вторую задачу, которая была на Деревья и Теорию графов. Опять же я задал уточняющие вопросы. Начал описывать решение которое было очень затратным O(n^3). Но были проблемы с оптимизацией решения. Тогда интервьюер спросил почему у меня проблемы с оптимизацией. Я описал возможные edge кейсы, тогда интервьюер поправил меня и сказал что я не совсем верно понял задачу и разъяснил мои сомнения. Получилось так то этих edge кейсов не может быть и задача намного проще чем я думал.
Осталось 5 минут, интервьюер попросил закодить мое решение. Я очень быстро написал свое решение. В спешке я допустил несколько опечаток, к примеру забыл скобки в уравнении. Он меня поправил. Посчитал Space and Time complexity. И на этом мы закончили.
Какие ощущения ?
Я бы сказал что это было пока мое самое тяжелое собеседование. Не потому что задачи были сложными, а потому что они были легкими, что немного расслабило меня и сбило с толку. Некоторые моменты были неясными в задаче, и я не уделил достаточного времени чтобы уточнить эти неясности. Это жирный минус. Но с другой стороны я быстро смог найти решение и написать его и верно (хотя и с некоторыми исправлениями) посчитать Space and Time complexity. Это был один из моих худших показателей за этот год. Я думаю что 40% что я пройду дальше и 60% что меня отклонят. Будем ждать из ответа и надеюсь на лучшее.
#story #google
Что там было?
Зашел интервьюер и дал задачу на массивы. Я задал несколько уточняющих вопросов. И начал рассказывать свое решение. Походу рассказа я задавал уточняющие вопросы и корректировал свое решение, так как условия были немного не такими как я понял. Собеседник сказал что ему нравиться мое решение и я приступил к написанию кода.
Пока я писал решение допустил много ошибок связанных с edge кейсами, но смог их поправить. Это был жирный минус, то что я не учел некоторые очевидны edge кейсы. Написал решение и посчитал Space and Time complexity.
Интервьюер дал мне вторую задачу, которая была на Деревья и Теорию графов. Опять же я задал уточняющие вопросы. Начал описывать решение которое было очень затратным O(n^3). Но были проблемы с оптимизацией решения. Тогда интервьюер спросил почему у меня проблемы с оптимизацией. Я описал возможные edge кейсы, тогда интервьюер поправил меня и сказал что я не совсем верно понял задачу и разъяснил мои сомнения. Получилось так то этих edge кейсов не может быть и задача намного проще чем я думал.
Осталось 5 минут, интервьюер попросил закодить мое решение. Я очень быстро написал свое решение. В спешке я допустил несколько опечаток, к примеру забыл скобки в уравнении. Он меня поправил. Посчитал Space and Time complexity. И на этом мы закончили.
Какие ощущения ?
Я бы сказал что это было пока мое самое тяжелое собеседование. Не потому что задачи были сложными, а потому что они были легкими, что немного расслабило меня и сбило с толку. Некоторые моменты были неясными в задаче, и я не уделил достаточного времени чтобы уточнить эти неясности. Это жирный минус. Но с другой стороны я быстро смог найти решение и написать его и верно (хотя и с некоторыми исправлениями) посчитать Space and Time complexity. Это был один из моих худших показателей за этот год. Я думаю что 40% что я пройду дальше и 60% что меня отклонят. Будем ждать из ответа и надеюсь на лучшее.
#story #google
👍2
Пришло письмо от Google. Говорят что готов мой фидбэк по интервью и они хотели бы его обсудить со мной завтра по телефону. По тону письма я так полагаю что меня отклонили, так как год назад когда я проходил на онсайт было что то типа “Поздравляем, вы прошли на следующий этап…”. А тут “Давайте поговорим про ваш фидбэк.”. Конечно надеюсь на лучшее, но все равно грустно немного.
В прошлом году была обратная ситуация, Facebook и Amazon отклонили меня, а Google пропустил на онсайт. В этом году наоборот. В собеседовании есть эффект удачи. Я переволновался и не смог показать свои сильные стороны. Возможно нужно попрактиковаться в Pramp, чтобы снизить волнение.
#story #google
В прошлом году была обратная ситуация, Facebook и Amazon отклонили меня, а Google пропустил на онсайт. В этом году наоборот. В собеседовании есть эффект удачи. Я переволновался и не смог показать свои сильные стороны. Возможно нужно попрактиковаться в Pramp, чтобы снизить волнение.
#story #google
👍1
Созвонились с HR с Google.
Чувак спросил мои ощущения после собеседования. Я сказал что не смог показать свои сильные стороны из за волнения, упустил некоторые очевидные edge кейсы. Сказал что это могло бы быть “red flag” (причина для отклонения) для интервьюера.
HR сказал чтобы я не расстраивался раньше времени и сказал что мой перформанс был очень хорошим и я прошел на следующий этап. Ура! На удивление фидбек был очень позитивным, все минусы которые я упомянул было подмечено в фидбэке. Но в целом интервьюер остался доволен моими решениями.
Теперь мне надо выслать даты для онсайт. Онсайт будет длиться 6 часов. 3 собеседования по часу на кодинг, 1 час на обед, 1 час на System Design, 1 час на LP (leadership). Пойду готовиться.
#story #google
Чувак спросил мои ощущения после собеседования. Я сказал что не смог показать свои сильные стороны из за волнения, упустил некоторые очевидные edge кейсы. Сказал что это могло бы быть “red flag” (причина для отклонения) для интервьюера.
HR сказал чтобы я не расстраивался раньше времени и сказал что мой перформанс был очень хорошим и я прошел на следующий этап. Ура! На удивление фидбек был очень позитивным, все минусы которые я упомянул было подмечено в фидбэке. Но в целом интервьюер остался доволен моими решениями.
Теперь мне надо выслать даты для онсайт. Онсайт будет длиться 6 часов. 3 собеседования по часу на кодинг, 1 час на обед, 1 час на System Design, 1 час на LP (leadership). Пойду готовиться.
#story #google
👍1
На следющей неделе будет онлайн онсайт в Amazon. Пока придерживаюсь такого расписания:
- 3-4 Leetcode задач в день.
- 1 лекция по System Design в день.
- Разбираю 2-3 кейса по System Design на доске в неделю.
- 2-3 раза в неделю разговариваю сам с собой и отрабатываю LP. Составил список важных проектов о которых мог бы рассказать.
(на фото доска после сессии SD по вечерам)
#story #amazon
- 3-4 Leetcode задач в день.
- 1 лекция по System Design в день.
- Разбираю 2-3 кейса по System Design на доске в неделю.
- 2-3 раза в неделю разговариваю сам с собой и отрабатываю LP. Составил список важных проектов о которых мог бы рассказать.
(на фото доска после сессии SD по вечерам)
#story #amazon
👍1
Сегодня день X. Вечером у меня будет онлайн онсайт в Amazon. Собеседование будет длиться 4 часа, с 10 минутными перерывами между ними.
Какие ощущения?
Ночью несколько раз просыпался, то снилось что я проспал собеседование, то снилось что я не смог подключиться к онлайн платформе. Чувствую себя хорошо, даже не вериться что сегодня собес. За день до собеседования обычно не решаю задачи, чтобы мозг отдохнул и набрался сил.
Какие планы?
⁃ Порешать пару задач чтобы разбудить мозг перед собеседованием.
⁃ Подготовить комнату для собеседования. Поставить доску и маркеры, подключить комп.
⁃ Думаю транслировать доску на экран компа через mirroring на телефоне, чтобы удобнее было показывать решения SDI на доске.
⁃ Проверить маркеры, что все пишут.
⁃ Подготовить дополнительные наушники, на случай если будут проблемы с микрофонном.
⁃ Зарядить и пополнить телефон как дополнительный источник интернета, на случай если домашний интернет опять будет лагать.
⁃ Подготовить список проектов и проговорить LP вопросы.
⁃ Набрать бутылку воды, придется много говорить.
⁃ На всякий случай взять с собой ручку и бумагу.
#story #amazon
Какие ощущения?
Ночью несколько раз просыпался, то снилось что я проспал собеседование, то снилось что я не смог подключиться к онлайн платформе. Чувствую себя хорошо, даже не вериться что сегодня собес. За день до собеседования обычно не решаю задачи, чтобы мозг отдохнул и набрался сил.
Какие планы?
⁃ Порешать пару задач чтобы разбудить мозг перед собеседованием.
⁃ Подготовить комнату для собеседования. Поставить доску и маркеры, подключить комп.
⁃ Думаю транслировать доску на экран компа через mirroring на телефоне, чтобы удобнее было показывать решения SDI на доске.
⁃ Проверить маркеры, что все пишут.
⁃ Подготовить дополнительные наушники, на случай если будут проблемы с микрофонном.
⁃ Зарядить и пополнить телефон как дополнительный источник интернета, на случай если домашний интернет опять будет лагать.
⁃ Подготовить список проектов и проговорить LP вопросы.
⁃ Набрать бутылку воды, придется много говорить.
⁃ На всякий случай взять с собой ручку и бумагу.
#story #amazon
👍1
Прошел онлайн онсайт в Амазон. Интервью начался вечером в 5:00 и длилось до 9:30.
До начала собеседования начал готовить рабочее место. Пробежался по моему списку и настроил рабочее место. Подключил телефон чтобы транслировать доску для SDI, набрал воды, жена купила шоколадок чтобы был бодреньким. (на фото мой сетап для собеседования, рабочего стола у меня нет).
#story #amazon
До начала собеседования начал готовить рабочее место. Пробежался по моему списку и настроил рабочее место. Подключил телефон чтобы транслировать доску для SDI, набрал воды, жена купила шоколадок чтобы был бодреньким. (на фото мой сетап для собеседования, рабочего стола у меня нет).
#story #amazon
👍1
Что там было?
В самом начале на видео звонка залетел мой HR чтобы узнать все ли норм. Мы потестили звук и видео, она отключилась и стал ждать первого интервьюера.
Round 1.
Зашел в чат чувак средних лет. Он рассказал о себе. Я о себе. Поспрашивал LP вопросы. Что то типа “Каким проектом ты гордишься больше всего? Почему?”, “Какие были сложности при разработке?” и т.д. Болтали так минут 20. Остальные полчаса были на задачу. Дал задачу на массивы, мол даны какие то API, нужно к ним обратиться, собрать какие то данные и что то там посчитать. Уровень Easy/Medium на Leetcode. Я поспрашивал вопросы чтобы понять что именно он хочет и как работать с этими API (спрашивайте вопросы всегда). Потом я описал решение по шагам на словах, написал в редакторе кода, мол буду делать то то и то то. После каждого шага спрашивал “What do you think about it?”, “Does it sounds good for you?”, “Is that makes sense for you?” и т.д. Это тоже очень важно, так как надо понимать в правильном ли направлении я двигаюсь. После того как интервьюер сказал “Sounds good”, я сказал что хочу перейти к написанию кода.
Написал решение быстро. Показал, тот сказал что все ок. Спросил потом усложненную версию этого вопроса, который уже был похож на проблему графов. Сказал что можно решить через DFS. Чувак не стал настаивать на написании кода и просил объяснить только на словах. Потом он спросил как это все можно запустить на нескольких потоках. Я рассказал про локи, про общие ресурсы потоков и т.д. Сказал что как альтернативу можно использовать functional programming, чтобы изолировать операции на каждом потоке.
Чувак сказал что больше нет вопросов. Я его поспрашивал про его работу и мы попрощались. Мы закончили на 10 минут раньше срока. Плюс 10 минут перерыва, в итоге меня было около 20 минут на отдых. Я чувствовал себя уверенно после этого собеседования. После каждого раунда я вставал, разминался, ел шоколадки, пил воды.
#story #amazon
В самом начале на видео звонка залетел мой HR чтобы узнать все ли норм. Мы потестили звук и видео, она отключилась и стал ждать первого интервьюера.
Round 1.
Зашел в чат чувак средних лет. Он рассказал о себе. Я о себе. Поспрашивал LP вопросы. Что то типа “Каким проектом ты гордишься больше всего? Почему?”, “Какие были сложности при разработке?” и т.д. Болтали так минут 20. Остальные полчаса были на задачу. Дал задачу на массивы, мол даны какие то API, нужно к ним обратиться, собрать какие то данные и что то там посчитать. Уровень Easy/Medium на Leetcode. Я поспрашивал вопросы чтобы понять что именно он хочет и как работать с этими API (спрашивайте вопросы всегда). Потом я описал решение по шагам на словах, написал в редакторе кода, мол буду делать то то и то то. После каждого шага спрашивал “What do you think about it?”, “Does it sounds good for you?”, “Is that makes sense for you?” и т.д. Это тоже очень важно, так как надо понимать в правильном ли направлении я двигаюсь. После того как интервьюер сказал “Sounds good”, я сказал что хочу перейти к написанию кода.
Написал решение быстро. Показал, тот сказал что все ок. Спросил потом усложненную версию этого вопроса, который уже был похож на проблему графов. Сказал что можно решить через DFS. Чувак не стал настаивать на написании кода и просил объяснить только на словах. Потом он спросил как это все можно запустить на нескольких потоках. Я рассказал про локи, про общие ресурсы потоков и т.д. Сказал что как альтернативу можно использовать functional programming, чтобы изолировать операции на каждом потоке.
Чувак сказал что больше нет вопросов. Я его поспрашивал про его работу и мы попрощались. Мы закончили на 10 минут раньше срока. Плюс 10 минут перерыва, в итоге меня было около 20 минут на отдых. Я чувствовал себя уверенно после этого собеседования. После каждого раунда я вставал, разминался, ел шоколадки, пил воды.
#story #amazon
❤1👍1
Round 2.
Сел обратно на рабочее место. Подключились 2 чувака. Рассказали о себе. Главный из них поспрашивал LP вопросы. Что то типа “Бывали ли случаи когда ты не вписывался в дедлайн?”, “Было ли такое что ты помогал коллеге?” и т.д. Болтали так минут 20. Потом мне дали System Design кейс. Построить некую рекомендательную систему и написать алгоритм для этого. Я прифигел, так как до этого я только юзал готовые алгоритмы. Я собрал требования. Нарисовал общую схему такой системы. Сказал что будет 3 этапа, сбор данных, подсчет рекомендаций и в конце сам API рекомендаций. Нарисовал компоненты. Потом нарисовал как буду собирать данные, в каком формате они будут храниться, сколько примерно у меня будет данных в террабайтах. Потом нарисовал как буду обрабатывать данные и как буду записывать результаты. Написал очень тупой алгоритм для рекомендаций. Чувак поспрашивал про то как работает шардинг баз данных. Я рассказал что знаю. Мы немного пообщались и на этом все. Я чувствовал себя уже не так уверенно после этого собеседования. Я болтал без умолку и мог упустить фидбек от интервьюера. Это жирный минус.
Round 3.
LP вопросы. Потом чувак дал мне 2 вопроса и сказал чтобы я выбрал какой мне нравиться больше. Первый был задачей на стэки уровня Hard, второй Medium на графы. Так как я хорошо знал графы и не хотел мудохаться с Hard задачей выбрал второе. Решил быстро. Мы поболтали. И на этом все. Я чувствовал себя уверенно после этого собеседования.
Round 4.
LP вопросы. Чувак попросил задизайнить модуль который бы искал кое что по определенным критериям. Я написал рекурсивный алгоритм, потом начал переделывать его на итеративный, хотя интервьюеру было ок с рекурсией. Я настоял чтобы был итеративный, так как легче дебажить и не будет проблем с лимитом кол стэка. Я начал рефакторить и долго тупил. Чувак начал нервничать и говорить чтобы я оставил как есть, но я настоял на своем (не делайте так) и в итоге через пару минут сделал итеративный вариант. Потом меня спросили как бы я изменил свой модуль если бы мне нужно было обрабатывать динамическое количество критериев. Я спер идею query builder из PHP, Laravel, Yii и сделал что то похожее. Интервьюер похвалил мой подход. Мы поболтали. И на этом все. У меня были смешанные чувства после собеседования. С одной стороны я все решил и меня похвалили. С другой я перечил интервьюеру и долго мусолил итеративный подход, это могло сыграть против меня.
#story #amazon
Сел обратно на рабочее место. Подключились 2 чувака. Рассказали о себе. Главный из них поспрашивал LP вопросы. Что то типа “Бывали ли случаи когда ты не вписывался в дедлайн?”, “Было ли такое что ты помогал коллеге?” и т.д. Болтали так минут 20. Потом мне дали System Design кейс. Построить некую рекомендательную систему и написать алгоритм для этого. Я прифигел, так как до этого я только юзал готовые алгоритмы. Я собрал требования. Нарисовал общую схему такой системы. Сказал что будет 3 этапа, сбор данных, подсчет рекомендаций и в конце сам API рекомендаций. Нарисовал компоненты. Потом нарисовал как буду собирать данные, в каком формате они будут храниться, сколько примерно у меня будет данных в террабайтах. Потом нарисовал как буду обрабатывать данные и как буду записывать результаты. Написал очень тупой алгоритм для рекомендаций. Чувак поспрашивал про то как работает шардинг баз данных. Я рассказал что знаю. Мы немного пообщались и на этом все. Я чувствовал себя уже не так уверенно после этого собеседования. Я болтал без умолку и мог упустить фидбек от интервьюера. Это жирный минус.
Round 3.
LP вопросы. Потом чувак дал мне 2 вопроса и сказал чтобы я выбрал какой мне нравиться больше. Первый был задачей на стэки уровня Hard, второй Medium на графы. Так как я хорошо знал графы и не хотел мудохаться с Hard задачей выбрал второе. Решил быстро. Мы поболтали. И на этом все. Я чувствовал себя уверенно после этого собеседования.
Round 4.
LP вопросы. Чувак попросил задизайнить модуль который бы искал кое что по определенным критериям. Я написал рекурсивный алгоритм, потом начал переделывать его на итеративный, хотя интервьюеру было ок с рекурсией. Я настоял чтобы был итеративный, так как легче дебажить и не будет проблем с лимитом кол стэка. Я начал рефакторить и долго тупил. Чувак начал нервничать и говорить чтобы я оставил как есть, но я настоял на своем (не делайте так) и в итоге через пару минут сделал итеративный вариант. Потом меня спросили как бы я изменил свой модуль если бы мне нужно было обрабатывать динамическое количество критериев. Я спер идею query builder из PHP, Laravel, Yii и сделал что то похожее. Интервьюер похвалил мой подход. Мы поболтали. И на этом все. У меня были смешанные чувства после собеседования. С одной стороны я все решил и меня похвалили. С другой я перечил интервьюеру и долго мусолил итеративный подход, это могло сыграть против меня.
#story #amazon
👍1
Какие ощущения?
После собеседования были смешанные чувства. С одной стороны я вроде сделал все правильно и задачи были достаточно легкими. Но с другой стороны меня не покидало ощущение что это я не смог углубиться в проблему и решил ее неверно. Из минусов я несколько раз перечил интервьюеру, тупил при решении задачи и что то там накалякал на SDI. Против меня еще играет нынешняя ситуация с вирусом. Из плюсов я решил все задачи оптимальным путем, расписал все за и против разных подходов, решал достаточно быстро и без багов. Меня даже пару раз похвалили. В итоге у меня ощущение 50/50. 50% что меня пошлют и 50% что пропустят дальше. Сказали что ответ будет на следующей неделе. Будем ждать. К концу интервью был очень измотан, но не мог долго уснуть. Не мог долго собраться с мыслями чтобы все расписать.
#story #amazon
После собеседования были смешанные чувства. С одной стороны я вроде сделал все правильно и задачи были достаточно легкими. Но с другой стороны меня не покидало ощущение что это я не смог углубиться в проблему и решил ее неверно. Из минусов я несколько раз перечил интервьюеру, тупил при решении задачи и что то там накалякал на SDI. Против меня еще играет нынешняя ситуация с вирусом. Из плюсов я решил все задачи оптимальным путем, расписал все за и против разных подходов, решал достаточно быстро и без багов. Меня даже пару раз похвалили. В итоге у меня ощущение 50/50. 50% что меня пошлют и 50% что пропустят дальше. Сказали что ответ будет на следующей неделе. Будем ждать. К концу интервью был очень измотан, но не мог долго уснуть. Не мог долго собраться с мыслями чтобы все расписать.
#story #amazon
👍1
Позвонил HR из Амазона. Сказала стандартную фразу “We unfortunately will not be moving your application forward…”, что означает соси палец, ты нам не подходишь. Фидбэк отказались давать, но сказали что были бы рады увидеть меня через годик. Я чет взгрустнул.
Почему меня отшили?
⁃ Я точно завалил SDI, так как нес бред и чересчур волновался. Задавал неверные вопросы. Нужно больше практики.
⁃ Я несколько раз перечил одному интервьюеру и оптимизировал код который он просил оставить в покое. Не делайте так.
⁃ Возможно мои LP ответы были не достаточно убедительными. Стоило уделить больше времени на проработку историй.
⁃ В связи с вирусом компания может быть излишне избирательна, так как цена ошибки сейчас выше.
Минус один. Остался еще Google и Facebook. Делаю ставку на Google, так как в Facebook слишком высокая позиция для меня. Буду готовиться дальше. Главное не падать духом.
#story #google #facebook #amazon
Почему меня отшили?
⁃ Я точно завалил SDI, так как нес бред и чересчур волновался. Задавал неверные вопросы. Нужно больше практики.
⁃ Я несколько раз перечил одному интервьюеру и оптимизировал код который он просил оставить в покое. Не делайте так.
⁃ Возможно мои LP ответы были не достаточно убедительными. Стоило уделить больше времени на проработку историй.
⁃ В связи с вирусом компания может быть излишне избирательна, так как цена ошибки сейчас выше.
Минус один. Остался еще Google и Facebook. Делаю ставку на Google, так как в Facebook слишком высокая позиция для меня. Буду готовиться дальше. Главное не падать духом.
#story #google #facebook #amazon
👍2
