# Собеседование с Amazon

[Lavhani o’zbek tilida o’qish.](https://medium.com/@TenxEngineer/amazon-bilan-intervyu-2166df5253b6)

В Январе 2020 года я прошёл собеседование с Amazon на позицию iOS разработчика.

### Контакт с рекрутером.

В Ноябре 2019 года я получил сообщение в LinkedIn от рекрутера: “Ты крутой… мы крутые… Идём работать в Audible…”.

> Audible — сервис аудиокниг, дочерняя компания Amazon.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677601349866/3b5fa0fc-5cef-439b-9058-5f8f0c928992.png)

Сообщение от рекрутера.

Поговорив с рекрутером, мы назначили дату собеседования.

### Подготовка к собеседованию

Я решил изучить темы, которые плохо знал: BFS, обход лабиринтов, структуры данных.

> BFS (Breadth First Search) — алгоритм обхода графа в ширину.

Для этого я посмотрел видео уроки на YouTube по решению задач связанных с BFS и лабиринтами, а затем практиковал знания на [LeetCode](http://leetcode.com).

Самым понятным оказалось это видео:

<iframe src="https://www.youtube.com/embed/KiCBXu4P-2Y?feature=oembed" width="700" height="393" frameborder="0" scrolling="no"></iframe>

Видео урок по решению задачи обхода лабиринта.

Также я прочел статьи на [Interview Cake](https://interviewcake.com) про основные структуры данных:

*   Статичный и динамичный массивы;
*   Связный список;
*   Хэш таблица;
*   Стек;
*   Граф;
*   Бинарное дерево.

### День собеседования.

#### Телефонное интервью.

Интервью прошло по телефону (phone interview) и длилось один час.

Phone interview/screening — первый этап устройства на работу. Технический специалист и кандидат общаются по телефону. При этом оба работают на общем документе схожим с блокнотом: LeetCode, Google Docs, CoderPad. В этих инструментах нет фич современных IDE: автозаполнение, подсветка синтаксиса, подсказка ошибок.

#### Устные вопросы.

*   Вы знаете Swift, Objective–C? Подсказка: это нормально не знать один из этих языков.
*   Как работает управление памятью на Swift? Подсказка: ARC.
*   Как работает многопоточность на Swift? Какие технологии существуют? Подсказка: GCD, NSOperationQueue.

#### Письменный вопрос.

*   Напишите класс NotificationCenter в iOS с нуля. Подсказка: паттерн Наблюдатель (Observer).

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677601351380/736ea020-1a06-4264-a997-fc555b19771e.png)

Диаграмма паттерна Наблюдатель (Observer). “Head First Design Patterns”, Э. Фримен, Э. Робсон и другие.

Эта часть прошла на платформе Amazon — livecode, схожую на LeetCode. Во время интервью я чувствовал, что пишу код в блокноте, но с подсветкой синтаксиса.

Во время написания кода, я и мой собеседник задавали друг другу вопросы:

*   Какие функции должны быть в классе?
*   Как регистрировать подписчиков? В какой структуре хранить их список?
*   Как сделать код читабельней?

Amazon livecode — платформа для проведения интервью.

### Что дальше?

Результат собеседования пришёл на следующий день — отказ. После отказа, я запросил отзыв у рекрутера и с тех пор тишина…

Сейчас продолжаю подготовку: спрашиваю советы у техлида на работе, обучаюсь через LeetCode, Interview Cake, YouTube. Дай бог, в дальнейшем подам на работу в Microsoft и Google.

> Техлид — технический глава команды разработчиков. Обычно он/она самый сильный инженер в определённой технологии: iOS, Android, Backend и т.д.

Конец.

Новые посты публикуются на канале [@TenxEngineer](http://t.me/tenxengineer).

О чем написать следующий пост?  
Пишите вопросы и предложения [@darhonbek](http://t.me/darhonbek)!
