Последнее обновление: 29 July, 2021
О собеседованиях в зарубежные компании в интернете много информации. Существуют целые платформы (LeetCode, AlgoExpert), созданные для того, чтобы помогать кандидатам проходить технические интервью.
Однако, когда я пытался найти информацию по поводу технических интервью в Украине, это оказалось намного труднее.
Многие рекрутеры работают как будто бы посредниками между твоим CV и техническим лидом-интервьюером. В рамках эксперимента я отзывался на все предложения, что мне приходили на Джинне, даже не читая их, и предлагал компаниям самостоятельно оценить мое резюме — подхожу я им или нет.
Я провел около 10 скрининговых встреч за последнюю сессию поиска работы, и переодически делаю это даже тогда, когда работу не ищу.
Во время встречи-знакомства я старался помнить о том, что...
Чаще всего, в вопросах рекрутера уже зашифрованы ответы, которые ей/ему хотелось бы от меня получить
В целом, это самый приятный и наименее стрессовый этап собеседования. Обычно по длительности он около 30 минут.
Я собеседовался на позиции Back-End Software Engineer, мой основной язык программирования — Python. И первое отличие, которое мне кажется важным отметить это то, что украинские компании на технических собеседованиях очень любят теоретические вопросы.
Вот основные темы, которые интересуют интервьюеров:
Например:
Никто ни разу не просил инвертировать бинарное дерево. Если на проекте используется какой-то популярный фреймворк, меня часто спрашивали про его конструкцию. Например, как сделан режим DEBUG в Django.
Никто не просил спроектировать инстаграм или, в принципе, спроектировать что-либо в реальном времени.
Просили...
Если мы говорим про Python, то часто интервьюеры очень привязываются к тому сколько у тебя лет опыта работы с определенным фреймворком — Django, Flask, Pyramid и так далее.
Меня много спрашивали про конкретные аспекты фреймворка с которыми я работал:
и тому подобное.
Учитывая украинские реалии, возможно, эти вопросы имеют смысл. Мало какие компании делают свой опен-сорс или свои фреймворки/библиотеки, поэтому вопросов о том как можно было бы сделать свой фреймворк — я не слышал. Впрочем, это, наверное, не подходящий вопрос для Junior или Middle позиции.
Никто не просит написать SQL кверю по памяти, но могут спросить о том, как устроены индексы в базе данных, какие типы изоляции транзакций в определенной базе существуют, чем каждый из типов хорош и плох, какие проблемы они решают.
Для того, чтобы подготовиться к таким вопросом, ознакомьтесь с техническим стеком проекта, на который вы проходите собеседование. Обычно в вакансии всегда описано, какую базу данных использует проект.
Если же вы проходите интервью в аутсорс компанию в штат, а не на проект, то могут спрашивать про разные базы данных, но вопросы не будут глубокими или особенно специфическими.
Популярный вопрос — описать преимущества и недостатки NoSQL баз данных, или наоборот — реляционной модели.
Я проходил 5 технических интервью и ни на одном у меня не спросили по поводу security practices. Возможно, это совпадение, а возможно — украинские компании не особо уделяют внимания этому вопросу.
Из трех технических интервью в последнюю мою сессию поиска работы, два закончились оффером. Это довольно неплохая конверсия как по мне, поэтому позволю себе поделиться собственным опытом.
Мне очень помогли эти книги: Designing Data-Intensive Applications и Learning SQL by Alan Beaulieu
А кроме книг, вот эти YouTube каналы:
Когда я хотел пройти техническое интервью максимально хорошо, я тратил на подготовку два дня. Мне этого хватало.
Интервью, даже технические, проходятся лучше, если продемонстрировать свои сильные стороны. Моя сильная сторона, как мне кажется, то, что я неплох в коммуникации.
Я упоминал вскользь о том, что я:
...и мне это, конечно же, играло на руку. Я выигрывал очень сильно от того, что смог в нужный момент поворачиваться сильной стороной к собеседнику и старался отводить внимание от того факта, что я технически могу не дотягивать.
Я составил себе небольшой список вопросов, которые помогали поддерживать интервью живым и интересным и получить мне необходимую информацию про компанию.
Если это продуктовая компания, то я обязательно делаю три вещи:
Проходить собеседования — любопытное занятие. Очень расширяет перспективу, и в короткий срок можно приобрести много интересных новых знакомств из всех уголков Украины.
Собеседования многому учат и приводят в тонус. Я считаю, что время от времени нужно окунаться в этот процесс даже если не ищешь работу — чтобы размяться, ослабить свой страх перед людьми, и так далее.
В прохождении собеседований я бы еще отметил несколько важных табу.
На этом все. И удачной охоты на ваш идеальный оффер!
Трой Кёлер - программист, живущий в Берлине, Германия. У него более 6 лет опыта работы в IT. Ранее он работал в одном из крупнейших интернет-магазинов Украины, а сейчас работает в Zalando. Он специализируется на языке программирования Rust, сложных бекенд системах, разработке продуктов и инженерных платформах.