Собеседование в айти-компании

Я работаю программистом в Чехии десять лет. Много раз был на собеседованиях, на которых принимали на работу новых коллег. В тексте расскажу, как компания, в которой я работаю, принимает на работу программистов. Вы узнаете что нужно уметь, чтобы получить работу, каких требований ожидать на работе, и сколько можно получать денег. Расскажу, как проходит собеседование и стоит ли его бояться. В тексте приведу пример тестового задания, которое используем на собеседовании.
Что нужно уметь, чтобы получить работу
Если вы разработчик, то обучиться технологиям, которые используем в фирме, где я работаю, не должно составить труда. Это довольно «модные» технологии. Недостатка в источниках информации быть не должно. Технологиям, которые используем (JavaScript, Node. js, mongodb, Angular, rxjs, event sourcing) легко обучиться на сайтах, например, Coursera, GeekBrains или Skillbox. Их можно также изучить просто по документации.
Кандидатов, которые имеют опыт работы с «нашими» технологиями приходит мало. В основном кандидаты знакомы с Java и другими языками программирования. Но если кандидат выполнил тестовое задание, ответил на наши вопросы, и подходит по всем другим параметрам, то все равно берем. Мы — уверенная в себе шайка разработчиков. Мы считаем, что программирование — ремесло, и мы можем ему обучить. В нашей компании успешно работают психологи, философы, экономисты (это я) и одна девушка-зоотехник.
Как проходит собеседование
Собеседования проходят в два раунда. В первом, не-техническом раунде, мы знакомимся с кандидатом и выясненяем взаимные ожидания, в том числе и денежные. Этот раунд я в тексте описывать не буду. Сосредоточимся на тестовом задании и втором раунде. Между первым и вторым собеседованием проходит время (обычно несколько дней, может и недель). За него мы предлагаем кандидатам выполнить тестовое задание. Хорошо выполненное задание позволяет пригласить кандидата на второй раунд. Если тестовое задание выполнено плохо, то кандидата дальше не рассматриваем.
Во втором раунде оцениваем шансы влиться в команду и попутно для галочки проверяем знания в предметной области. Официальное предложение кандидату делаем (или не делаем) по итогам второго раунда.
Тестовое задание
Советую выполнять тестовое задание предельно тщательно. На выполнение даем столько времени, сколько нужно, поэтому не надо спешить. Не нужно присылать результаты через полчаса после получения письма с заданием, у нас это ни на что не влияет! Сотрудники, которые будут просматривать решение видели за последних полгода десятки вариаций решения и могут придраться к чему угодно. Не надо облегчать им работу. Чем меньше будет придирок, тем больше шансов, что компания пригласит кандидата на второй раунд. Только не думайте, что тестовое задание это изощренный способ получить от кандидатов код бесплатно. Это фильтр, который позволяет экономить время, потраченное на процесс приема на работу разработчиков.
Тестовое задание Надо написать простой http сервер, который отвечает на двух endpoints, один POST, другой GET. Исходный код сохранить на GitHub и присылать ссылку.
Решение мы обсуждаем в Слэке. На комментарии просим кандидата ответить во время второго раунда. Иногда того, что кандидат присылает в первый раз, недостаточно. Бывает, что компания дает еще один шанс, и предлагает переделать. Обычно повторное задание содержит небольшую подсказку от программистов.

Подробнее о собеседовании
На собеседованиях не запугивают и не пытаются показать себя самым умным. Подвохов не ждите. Второй раунд начинается с презентации решения. Задача тех, кто присутствует — убедиться, что задание кандидат выполнил сам. Еще пытаемся оценить на глаз, сколько строчек написал сам, а сколько скопировал. В копировании нет ничего зазорного! В то же время нужно быть готовым к тому, что спрашивать будем и насчет скопированного кода.
После презентации задаем дополнительные вопросы к коду. Обычно они касаются того, чему кандидаты уделяют мало внимания. Это может быть обработка ошибок, например при потере соединения с БД, работа с асинхронным кодом, запись лог-файлов, автоматические тесты.На собеседованиях мы используем сниппеты — маленькие кусочки кода, которые содержат ошибку, которую нужно сходу найти и исправить. Или нужно дополнить сниппет парой строк, чтобы он начал делать то, что нужно в задании. Так как мы работаем в JavaScript, то сразу видим сработало решение или нет. После второго раунда программисты рекомендуют или не рекомендуют менеджменту принять кандидата на работу. Официальное предложение менеджмент обычно делает кандидату в течение трех дней.
Испытательный срок
После испытательного срока (3 месяца) компания и/или кандидат могут решить прекратить сотрудничество. Компания будет совещаться, оставлять кандидата на работе или прощаться. Это решается вне зависимости от того, юниор кандидат или опытный программист. Коллег, с которыми кандидат успеет поработать попросят анонимно оценить прогресс, потенциал и шансы кандидата влиться в команду. Всегда лучше быть готовым к тому, что вас попросят сложить полномочия. Иногда, даже если ни с кем не было конфликтов и работа выходила ничего, HR все равно предложит проститься. Бывает, что человек и команда просто друг другу не подходят. Один раз мы расстались с парнем, который работал с нами больше года. Он одевался как скинхед, отрицал глобальное потепление, и состоял в группе теории заговора в Фейсбуке. Нормальный чувак, но не наше.
Требования к работе
Требований к программистам не так уж и много. Нужно приходить на работу и не спать с открытыми глазами. Нужно подавать знаки когда свободен (-дна), или когда застрял (-а), и не знаешь как дальше. Не надо тратить ресурсы компании впустую (включая собственное время, которое, как известно — деньги) и разлагать ее штабную культуру.
Что производит впечатление
Самое ценное, чем может похвастать кандидат, это опыт работы. Опыт программирования, и не обязательно в коммерческой сфере. Годится опыт работы в НКО, на кафедре в институте, где угодно. Наиболее подходящий опыт работы это конечно работа по специальности в Чехии. Если такого нет, ничего страшного, но начинать кандидату придется на позиции юниора, вне зависимости от того, сколько кандидату лет и какие предыдущие посты и где занимали.
Начинать на позиции юниора это не так плохо. Первое время (1-3 месяца) юниором будет постоянно кто-то заниматься, чтобы подтянуть до общепринятого уровня. Вызов для юниоров заключается в том, что придется многому научиться в сжатые сроки. Коллеги-программисты к сожалению редко бывают самыми терпеливыми учителями.
В 2018 г. от РХ программист просто обязан знать английский язык. В компании, где я работаю, достаточно пассивного знания для чтения документации. По своему опыту могу сказать, что люди не знающие английского языка чувствуют себя в чешских айти-компаниях некомфортно. В компании, где я работаю, есть сотрудники с которыми мы общаемся по-английски. Английский язык сегодня можно учить онлайн, так что никаких уверток в этом вопросе быть не должно.
Если у кандидата есть проекты на GitHub, то такой человек будет очень интересен. Если у кандидата есть блог/подкаст/канал на YouTube, где он/она постит решения трудных задач, то это производит хорошее впечатление. Не надо стесняться указывать в резюме ссылку.
О чем писать в резюме
Эта главка банальна, поэтому даю ее в самом конце. Несмотря на это, в компанию регулярно присылают резюме, которые нарушают одно или несколько из этих правил. Резюме должно быть кратким и не содержать лишнего. Резюме программиста начинается как визитная карточка:
- Кодер Фронтендович
- 3 года опыта работы с Angular, знаком с Vue.js
- Тел. 222-333-09
Далее краткий список предыдущих мест работы, в идеале с именем шефа и номером телефона. Образование, если оно есть, указываем в самом конце, как дань жанру резюме. Никого оно для позиции программиста не интересует. Пишем телеграфным стилем, без декораций. Лимит для резюме — 1 страница А4 с полями по три с половиной сантиметра с каждой стороны, шрифт 12 кегля. Если имеем меньше пятнадцати лет опыта, но резюме не поместилось в лимит, то буков слишком много, нужно сокращать.
Запомнить
Важно тщательно выполнять тестовое задание. Не надо бояться собеседования. Каждую свободную минуту совершенствовать английский язык. Резюме писать коротко и ясно, отжимая воду. Подтягивать скиллы программирования.
На собеседовании быть готовым к вопросам, в том числе и к тому, что скопировали из интернета. Быть готовым решать несложные задачки-сниппеты.
Если возникли вопросы к тестовому заданию, можете писать мне на marcel@kariera-czechia.com. Еще можете прочитать мой текст Как устроиться на работу в Чехии. Если вы уже работаете в Чехии программистом, то напишите мне в комментарии, что в вашей компании происходит иначе при приеме программистов на работу.
Подпишитесь на меня в Телеграме
Если вам понравилась статья, подпишитесь на меня в Телеграме, чтобы получать уведомления о новых статьях (где-то раз в месяц).