Я довольно часто видел мнение, что проходить собеседования это отдельный навык, не связанный с работой, и сам начал придерживаться такой позиции. Я спокойно работал, на поиск не отвлекался и в ус не дул. Но настал момент Х, когда мне пришлось задуматься о возможной смене места работы. Можно ли пройти собеседования без подготовки? Оценивают ли меня на рынке так же, как на текущем месте? Из чего вообще состоят настоящие собеседования? Сколько на это всё надо времени? С этими вопросами я открыл резюме на Хабр.Карьере и начал ждать предложений.
Для контекста о моём опыте: почти 5 лет опыта Java/Kotlin Backend Разработчиком. Из них около года - в Senior позиции. В текущее место я устроился стажёром и с тех пор не менял работу, не ходил на собеседования, и сам их не проводил. Поэтому все мои представления о них только по рассказам.
Куда собеседовался: позиция Senior Java/Kotlin Backend (пару раз на лида в качестве эксперимента), крупные и средние российские компании разных направлений (банки, еком, финтех, аутсорсеры, соцсети).
Терминология
Собеседование – весь процесс от предложения HR до оффера или отказа.
Этап – собеседование состоит из серии встреч, которые я буду называть этапами.
Секция – промежуток собеседования, объединённый общей темой. В одном этапе может быть несколько секций.
Все собеседования проходили удалённо, поэтому слова созвон и встреча – синонимы.
Секции
Секции я буду считать атомарной единицей собеседования. Расскажу чем же предстоит столкнуться соискателю в процессе поиска, зачем это надо и мой личный опыт и ощущения по каждой из них.
0. Созвон с HR
Как проходит: созваниваемся с HR и они делают проверку на соответствие вакансии. Периодически на данной встрече встречается опросник по разным технологиям. (Например: назовите коллекции в Java, какие типы баз данных существуют и т.д.).
Зачем: проверка кандидата на общую адекватность перед стартом остального процесса собеседования.
Личный опыт: эта секция была абсолютно во всех собеседованиях и всегда отдельным этапом. По большей части здесь приходится пересказывать своё резюме. Либо они его не читают, либо пытаются подловить на вранье, но похоже, что от этого разговора никуда не скрыться. Из полезного, можно задать некоторые уточняющие вопросы по условиям работы. А вот про процессы разработки тут ничего не расскажут.
1. Технический скрининг
Как проходит: встреча с разработчиком из компании. Иногда дают сказать пару слов о своём опыте, дальше задают вопросы от самых азов и до самых верхов. Спрашивали от методов java.lang.Object до discovery микросервисов и партиций в Kafka. Но всё зависит от компании.
Зачем: в целях экономии времени разработчиков, чтобы просеять достаточно большой поток кандидатов.
Личный опыт: я не прошёл большую часть встреченных скринингов. И это моя самая нелюбимая секция. Найти полное пересечение используемых технологий крайне маловероятно. Лично меня бомбануло с фидбека подтянуть методы класса Object (я не назвал wait и notify, просто потому что последний раз их использовал, когда изучал основы Java). При этом сомневаюсь, что у меня возникнут трудности подтянуть технологии в случае необходимости. Но как мне сказали в одном месте, что даже если я адекватный и у меня ценный опыт, они не могут просто пропустить чеклист. Ибо на следующих этапах кто-то может меня спросить, и если я не отвечу, то потом прилетит интервьюеру.
2. Алгоритмы
Как проходит: необходимо решать задачи с условного литкода в онлайн редакторе в присутствии разработчика. В процессе вслух проговариваешь алгоритм, можно задавать уточняющие вопросы. Если сильно тупишь, то интервьюер приходит на помощь с наводящими подсказками.
Зачем: как и со скринингом, здесь экономится время интервьюеров на типовых задачах, но также приведу здесь слова одного из интервьюеров (могу в чём-то ошибиться): на хайлоаде оптимизация очень важна, потому что это напрямую влияет на потребляемые ресурсы и им важно проводить данную секцию.
Личный опыт: всего я решил 12 задачек на 6 секциях. Самостоятельно додумался до полного решения штук у четырёх, с остальными помогали интервьюеры. Из подготовки у меня аж 1348 рейтинга на Codeforces с последним раундом 2 года назад, а последнее активное участие – 4 года. В целом секция не вызывала отрицательных эмоций (хотя изначально был настроен к ней скептически, после всех прочитанных статей на Хабре). Единственное, в одной компании данную секцию повторяли три раза подряд, под конец мне уже было смешно, но я решил не останавливаться. Уровень задачек не менялся, можно было бы и другие этапы заложить в это потраченное время. Были даже ситуации, когда в разных компаниях давали одни и те же задачи. Я об этом говорил, но сама ситуация забавная.
3. Лайфкодинг
Как проходит: дают скелет приложения и говорят, что нужно реализовать. Можно делать в любимом редакторе, шаришь экран и попутно разговариваешь с интервьюером. Помимо функциональности надо написать тесты и обсудить дальнейшие улучшения.
Зачем: проверить действительно ли ты умеешь писать код, как ты ориентируешься в незнакомом коде и задаче.
![](https://habrastorage.org/getpro/habr/upload_files/b49/3f0/a3c/b493f0a3c13af371fd5cf5a2c3caad14.png)
Личный опыт: Столкнулся 1 раз. Дали скелет приложения на Spring, успел и функцию реализовать и тесты написать, даже немного поговорили как это в продакшн вид привести. Много слышал, что эта секция вызывает у людей стресс, но у меня его не было. В целом было достаточно просто и похоже на парное программирование, ставлю лайк.
4. Систем-дизайн
Как проходит: название говорит само за себя – нужно спроектировать систему. Собираем требования, после на какой-нибудь онлайн доске, где можно рисовать, приступаем к созданию системы. Общаемся с интервьюером и обосновываем своё решение.
Зачем: сейчас довольно часто отказываются от выделенной позиции архитектора и отдают решения на уровень команд, поэтому важно в том числе уметь проектировать системы
![Алгоритм успешного прохождения Алгоритм успешного прохождения](https://habrastorage.org/getpro/habr/upload_files/966/c36/004/966c36004dcc890d3ffe6122252dd0a4.png)
Личный опыт: попробовал проектировать несколько раз с переменным успехом. Микросервисы, кафка, базы данных, кеши, проектирование API. Понял, что опыта проектирования хайлоад систем мне явно не достаёт. Но, я никогда и не работал на таких проектах, о чём честно предупреждал интервьюеров. В целом, показалось что помимо красивого решения, смотрят также на рассуждения, умение задавать вопросы и прочие софты.
5. Код ревью
Как проходит: даётся участок кода в онлайн редакторе, который надо разобрать. В целом, обычный процесс код ревью.
Зачем: разработчики читают код чаще, чем пишут. Здесь проверяют на умение разбираться в чужом коде, а также на токсичность в процессе ревью.
Личный опыт: данная секция была всего 3 раза. Ничем не отличается от процесса ревью на работе. Вот только на работе мне знакомы все наши подходы и инструменты, а здесь может попасться что-то новое, и сначала приходится разобраться в этом.
6. Траблшутинг
Как проходит: есть гипотетическая ситуация с проблемой на проде (сервис стал тормозить) и необходимо раскрутить процесс её решения, задавая вопросы интервьюеру.
Зачем: аварии случаются в любой системе, разработчикам нужно оперативно разбираться в проблеме и делать фиксы.
Личный опыт: на самом деле для меня это выглядит как часть технического скрининга, но иногда она всплывает посреди других секций, поэтому выделил как отдельный пункт. Я обычно начинаю с графиков, логов и так далее. Но в последних собеседованиях я заранее знал, что меня ведут к Thread Dump. Однако я его в жизни не использовал, только знаю о его существовании, просто потому что на работе таких ситуаций не было. Но судя по результатам, данный факт особо никого не смутил.
7. Знакомство
Как проходит в этой секции можно в полной мере рассказать о своём опыте, проекте, команде, достижениях, провалах. Также нанимающая сторона рассказывает о себе и можно задать свои вопросы. В большинстве случаев здесь присутствует несколько человек из команды, в которую нанимаешься.
Зачем: здесь происходит непосредственный метч с командой.
![Честное интервью Честное интервью](https://habrastorage.org/getpro/habr/upload_files/0c6/77b/451/0c677b451626ce60f51cc0ba640698d8.png)
Личный опыт: данную секцию как правило ставят последней. Здесь вообще никаких претензий нет, у меня всё в целом проходило хорошо и всегда интересно пообщаться с умными людьми, узнать как устроены процессы в других местах и почему они отличаются от наших. Некоторые компании делают упор в вопросах на то, что лично разработчик сделал на работе, приходилось объяснять про плоские команды, как мы совместно принимаем решения и распределяем задачи.
Продолжительность
Длительность всего процесса собеседования зависит от нескольких факторов:
Количество этапов
Пересечение свободных слотов у двух сторон
Скорость коммуникации между HR и командой
Каждый этап обычно длится от часа до полутора. Но в общей продолжительности собеседования данным временем можно пренебречь.
Количество этапов может быть разным, у меня они колебались от 2 до 6 с учётом первого созвона с HR.
Но самое интересное – это подобрать время таким образом, чтобы все были свободны. Основная проблема, что их в основном назначают на рабочее время, поэтому если есть полная занятость, скорее всего придётся пожертвовать своим обедом или доделывать дела позже. Если не иметь постоянного места работы, то в целом будет намного проще.
Возьму для примера среднюю картинку собеседования:
Потом, обычно на следующий день, предлагают назначить время первого этапа.
Первый этап наступит минимум на следующий день, но это может быть как через день, так и на следующей неделе.
После этапа день-два уходит на получение обратной связи. Но бывали случаи, когда её дают сразу.
Повторяем пункты 2-4 пока не закончим все этапы.
Получаем и заполняем анкету в службу безопасности. Обычно это занимает день, но в одном месте мне не могли выслать анкету неделю.
В случае успеха получаем долгожданный оффер.
![](https://habrastorage.org/getpro/habr/upload_files/6c9/f62/eeb/6c9f62eeb87ce9a1d6f2ededdf72cbd3.png)
Итого, в случае абстрактного среднего собеседования получается около двух рабочих недель. Но заложив сюда непредвиденные риски по времени, отказы, поиск идеального места, а желательно иметь выбор хотя бы из двух офферов, получается что на поиск работы уйдёт ОТ месяца и больше.
Негатив
Для себя выделил пункты, которые негативно влияют на восприятие работодателя в целом:
Опоздания на назначенное время больше чем на 5 минут.
Перенос этапа в последний момент.
На собеседовании присутствующие не слушают собеседников, общаются с кем-то за пределами экрана и в целом отвлекаются.
Не соблюдают обещанные сроки более чем на сутки.
Не могут найти окно для этапов в своём расписании больше нескольких дней.
После вежливого отказа от оффера пытаются переубедить всеми правдами и неправдами. Я понимаю, что это работа HR, но это очень бесит.
Несоответствие итогового предложения о зарплате, тому что было оговорено в начале.
Незаинтересованные интервьюеры, которые хотят побыстрее прогнать свой скрипт и пойти дальше. Не всем должно нравится проводить собесы, но возникает вопрос к компаниям, почему эти сотрудники оказались в данном процессе.
Все мы люди и могут возникнуть разные нюансы, но если они происходят систематически уже в процессе собеседования, то стоит задуматься.
Итоги
Итак, реально ли пройти собеседование человеку, который просто качественно делает свою работу, не читает материалы по типу 1000 вопросов на Java-разработчика, не кодит литкод и в целом не поддерживает себя в тонусе периодическими собеседованиями?
Ответ – да. Можно получить конкурентное предложение по зарплате и иметь возможность выбрать из нескольких мест. Возможно, подготовка к собесам позволит увеличить конверсию в оффер и сумму в нём, но тут каждый решает для себя сам.
Не бойтесь собеседований, там сидят такие же разработчики как и вы, которые, как правило, не заинтересованы в вашем провале, а ровно наоборот – ищут себе классного специалиста в компанию.
Статистика
Данная часть для любителей цифр и к основному посылу статьи отношения особо не имеет.
Всего собеседований за два месяца: 11
Максимальное количество этапов: 8 (из них 3 технические, 1 HR, и 4 знакомства)
Минимальное количество этапов: 2
Максимальное количество секций за этап: 3
Конвертация собеседований в офферы: 4/11 ~ 36%
Конвертация финальных этапов в офферы: 4/7 ~ 57%
Не могу не затронуть деньги. На хабре недавно была статья: Эпидемия многоступенчатых собеседований. В конце есть мысль, что многоступенчатые собеседования ориентированы в том числе на снижение заработной платы. Насколько это правда? С описанным в статье я столкнулся, но самое большое предложение мне сделали в месте с шестью этапами. Самое маленькое – в месте с двумя этапами. В целом, корреляции между количеством этапов и зарплатой я не увидел (но и выборка у меня маловата).