# Постовой Сергей
Собеседовали Александр Сивцов и Максим Овсянников в про профайл.
### Hard skills
#### Результат
-----
#### Что проверял
Понимание базовых сущностей и механик js.
#### Как проверял
1. Спросил, какие есть примитивные типы данных в js, в чём разница между `null` и `undefined`, зачем нужен `Symbol`.
2. Спросил про `var`, `let`, `const`, разницу, всплытие.
3. Дал задачу на копирование объектов по ссылке и мутацию ключей.
4. Спросил, что знает про функции в языке, в чём отличие declaration от expression, в чём особенность стрелочных функций.
#### Результат
1. Рассказал про все. Про `Symbol` сказал, что знает только теорию на практике не использует.
2. Рассказал все, но явно не сказал что у var функциональная видимость.
3. С задачей разобрался, но медленне чем обычно, много времени потратили на то, чтоб понять что вообще нужно сделать. Предложил атльтернативное решение с `Object.assign`.
4. Запутался в разнице declaration и expression, но после подсказки рассказал про особенности
-----
#### Что проверял
Понимание контекстного механизма, частичного применения функций.
#### Как проверял
1. Спросил, что такое `this`, как работает, чем является в разных ситуациях.
2. Дал задачу на написание собственной реализации `bind`.
#### Результат
1. Ответил.
2. Задачу закодил с подсказками.
-----
#### Что проверял
Понимание функциональных практик написания кода.
#### Как проверял
1. Спросил, что такое иммутабельность и зачем нужна.
2. Спросил про HOF и HOC.
3. Спросил про отличия между `filter/map/reduce/forEach` и область применимости каждого из методов.
4. Дал задачу на написание своей реализации `reduce`.
#### Результат
1-3. В целом понимает, рассказал.
4. Реализовал свёртку, но с помощью.
-----
#### Что проверял
Понимание Event Loop'а.
#### Как проверял
1. Спросил про то как устроен цикл событий в js
2. Дал задачу на расставление очередности вывода в зависимости от приоритета операции в цикле событий.
#### Результат
1. Расплывчато объяснил порядок выполнения и приоритеты типов операций.
2. Задачу решил сразу.
-----
#### Что проверял
Умение покрывать функциональность тестами.
#### Как проверял
Спросил, пишет ли тесты.
#### Результат
Про тесты сказал, что в команде разрабатывается все в соответствии с TDD, но больше уточнять не стал
-----
#### Что проверял
Понимание DOM, вёрстки, стилизации.
#### Как проверял
Спросил, что такое DOM, чем отличаются `defer` и `async`, проблему глубоко вложенных селекторов.
#### Результат
Про DOM рассказал, разницу `defer` и `async` ответил, но неправильно, после подсказки ответил правильно.
Про проблему глубокой вложенности css селекторов не ответил
-----
### Анализ
Кандидат хорошо знает теорию es6, однако с более ранними версиями спецификации есть проблемы. С наши задачками справлялся относительно хорошо.
На протяжении всего собеседования кандидат был вежлив и доброжелателен.
Есть минус, что нет особенно опыта работы с redux, но думаю что это быстро приобретаемые знания.
-----
### Итоговый вердикт
Рекомендую приглашать на следующий этап.