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

7 постов
пост №1860
Interview Coder безусловно помогает пройти формальное собеседование. С одной стороны, я не питаю иллюзий, что крупные компании откажутся от этих формальных проверок. Уже слышно, что компании всё чаще зовут кандидатов на личные встречи вместо созвонов онлайн. Не удивлюсь, если появятся технологические «античиты».

Интересно, что эта программа мало поможет при устройстве на работу к нам в компанию.

Обычно мы просим в свободном режиме, за пару дней решить реальную бизнес-задачу в коде. Пользуйся чем хочешь. Главное — чтобы был результат, прямо как на настоящей работе.

На собеседованиях же мы никогда не просим запрограммировать стандартную задачу, а говорим о личном опыте человека. Для этого не обязательно помнить деталей библиотек или названий функций. Важно понимать суть происходящего (ну или хотя бы показывать заинтересованность в ней), продемонстрировать, что умеешь видеть за техническими особенностями бизнес-цель и думаешь о том, как принести реальную пользу, а не просто «закрыть задачу». Ну и показать, что ты человек, с которым хочется работать вместе.

Тут современный ИИ может даже помешать.

Реальный мир на порядок богаче, сложнее и интереснее, чем любой экзамен. Если (когда) нейросети научатся решать реальные задачи, а не экзаменационные — вот тогда нам будет чего опасаться. С другой стороны, это будет совсем другая реальность и отбор хороших программистов вряд ли будет тогда насущным вопросом.

Но вернемся к Рою, которого уволили из университета.

Через месяц, Рой с другом основывают компанию Cluely. Этот сервис — уже не просто способ обмануть собеседования, но общий инструмент для удобного и незаметного использования ИИ. Слоган компании, оцененной в 120 млн долларов — «cheat on everything» — «жульничай во всем / списывай везде». Рекламный ролик — парень пользуется ИИ через виртуальные очки, чтобы врать на свидании. Самоирония?

Основатели сравнивают свой продукт с гуглом, калькулятором и проверкой орфографии — мол, бороться с ними — то же, что и бороться с прогрессом, который облегчает жизнь.

Стала ли наша память слабее от того, что мы не запоминаем десятков номеров телефонов, как раньше? Хуже ли мы ориентируемся в городе с появлением навигаторов? Становятся ли наши ноги и тело слабее от того, что мы ездим на машинах? Стоит ли отказываться от смартфонов, навигаторов, автомобилей? Стали ли мы хуже разбираться в мире с появлением гугла и тем, как он заменил библиотеки? К чему в этой цепочке примеров ближе ИИ?

Ещё одна аналогия, которая приходит в голову — это как если бы я поехал марафон на велосипеде. Буду ли я быстрее любого человека? Имеет ли это смысл? А что, если на работу доставщиком пиццы будут брать только победителей марафона?

ИИ заставляет заново задуматься о том, что значит быть человеком и зачем мы делаем те или иные, очень привычные вещи. Думаю, что дальше таких вопросов будет всё больше.

пост №1621

Наткнулся на популярный список на гитхабе для соискателя-программиста, чтобы подготовить вопросы к потенциальному работодателю.

Обычно на собеседованиях я выделяю хотя бы треть времени на вопросы кандидата о компании и работе, на которую мы его собеседуем.

По тому, какие вопросы задаёт кандидат, я узнаю о человеке не меньше, чем по его ответам на мои вопросы.

Часто соискатели теряются или стесняются задавать вопросы.

Не используйте этот список как чеклист — важнее понимать, какие потенциальные последствия у разных ответов на эти вопросы. Используйте его как набор тем, в которых стоит разобраться и составить своё отношение, опираясь на свой опыт и мнение тех, кому вы доверяете.

Ну и напомню о классическом чеклисте зрелости IT-компаний от Джоэля Спольски. Джоэль доступно объясняет, чем важен каждый пункт. У нас с Федей 11 из 12, по это уже другая история.

пост №1538

Интересная идея — проверять кандидатов на собеседовании через чтение кода, а не через его написание.

Правда, мы с Федей просто не проверяем на собеседованиях технические скилы.

Наша идея в том, что умение проходить собеседования — это отдельный скил, владение которым плохо предсказывает способность работать. И проверять лучше то, что нас реально интересует — то есть умение разобраться в бизнес-задаче и решить её с помощью кода, который дешево поддерживать.

Оценить эти навыки проще всего через чтение кода кандидата, если ему есть что показать. Если показать нечего — то предлагаем сделать платное тестовое — у Феди есть специально подготовленная задача. Ещё можно дать задачку из реального проекта, но это обычно сложнее для нанимающей стороны.

пост №1182

В сегодняшнем эпизоде мы с гостями разбираемся, как устроиться на работу в FAANG — фейсбук, эпл, амазон, нетфликс, гугл или майкрософт.

Алина Вербенчук не только работает в гугле продактом, но и помогает другим людям попасть на работу их мечты. Витя Милованов уже много лет в штатах; начал работать в Microsoft программируя Dynamics CRM, но в результате улучшал траспилятор из C# в Javacscript (!), потом ушел в Amazon делать инфраструктуру машинного обучения для Alexa, а сейчас развивает свой стартап и недавно наконец получил офер из фейсбука. Леша Кузнецов попал в гугл с 6 попытки и боролся там с черным SEO (SEOшники, привет!).

Реальные истории гостей, а также куча практических советов: как пройти 12 кругов собеседований, как оценить стоимость жизни в чужой стране и правильно торговаться о зарплате.

Очень сложный в продакшене эпизод, слава нашему редактору Юле Яковлевой! 🎉

Слушайте везде: Apple, Google, Castbox, Яндекс, Spotify, Overcast, ютуб и веб-версия.

пост №815

Сказка на ночь для взрослых!

Рассказ «The route of a text messsage» (путь смски) — про путешествие смски «я тебя люблю». Он описывает последовательность событий, которые переводят движения пальцев жены писателя в фотоны света, попадающие в глаза автора. Вы узнаете, как работают тач-скрины, почему в смсках 160 символов, что значит Super AMOLED и даже увидите видео, где Фейнман объясняет концепцию радио на примере жучка, плавающего в бассейне.

Рассказ затянут в одних местах и опускает важные детали в других — видно, что автор не эксперт в этой области (он историк астрономии), но всё равно — неплохое чтение на ночь.

Кстати, классический вопрос на собеседованиях для сисадминов — «что происходит, когда вы набираете google.com в строке браузера и нажимаете enter на клавиатуре?». Ответ и дальнейшее его обсуждение покажет, как глубоко инженер разбирается в технологиях, хорошо ли он умеет обсуждать проблемы с другими технарями и способен ли видеть за деревьями лес. Достаточно полный ответ на этот вопрос состоит из 24 глав и занимает 10 страниц A4.

пост №719

В чате несколько раз просили рассказать, как мы проводим собеседования, поделюсь.

Во первых, нужно выбрать, кого собеседовать. Мы смотрим на исходный код. Просим ссылку на репозиторий, zip или, хотя бы, отдельные исходные файлы. Это отсекает часть кандидатов, которые не способны прогать. Сразу видно крутышей, которые пишут так (или такое), что хочется с ними работать.

Пожалуюсь, что так и не научился находить хорошие репозитории по данному гитхаб-профилю. Я часто прошу скинуть мне прямую ссылку на репу.

Очень хороший текст о себе, со всеми правильными ключевыми словами, может подкупить моё сердце, но Рома (или другой программист) наверняка спросит «а код-то где?»

Я не даю тестовые задания, потому что боюсь отсечь самых крутых кандидатов, которые «в р** е**** наши тестовые» (не заинтересованы в тестовых), за ними и так очередь стоит. К тому же, код из реального мира лучше синтетического.

Во вторых, никаких собеседований один-на-один: это более утомительно и менее эффективно. Бэкендера мы искали вдвоем с Антоном, фронтов собеседуем с Ромой и с Сашей втроем. При этом иметь со стороны компании больше 3 человек, наверное, тоже перебор.

В третьих, мы не спрашиваем _тупых_ вопросов на _соображалку_ типа «сколько теннисных мячей поместится в Боинг 747». И никаких whiteboard interview, когда просят написать исходный код «здесь и сейчас». Собеседование призвано ответить на три вопроса:

1. Хотим ли мы работать с этим человеком?
2. Захочет ли он работать с нами?
3. Способен ли он выполнять работу, которую мы хотим ему дать?

Сценарий всех собеседований примерно одинаковый:
1. Мы рассказываем о продукте: какую проблему он решает, какие составные части в нем есть (это я люблю рассказывать сам, но порой я учусь смирению и это делает кто-то из программистов);
2. Какие технологии мы используем — тут обычно программисты начинают говорить на птичьем и в глазах кандидата появляется оживление, он начинает задавать вопросы. Хорошо!
3. Как устроен рабочий процесс — бейзкемп, рабочие циклы, разбиение фичи на подзадачи программистами, созвоны, личные встречи, etc. Больше вопросов, наши истории из жизни, в идеале кандидат делится своими.

Это всё нужно успеть проговорить за первые полчаса или быстрее. Мы раскрываемся перед кандидатом, задаем планку того, как и о чем рассказывать.

Дальше кандидат рассказывает о себе. Часто люди просят задать вопросы. Самый главный:

Почему решил уйти с прошлой работы? По ответу можно узнать, что важно для человека перед вами и зачем он к вам пришел. Почти всегда, есть что спросить по ходу рассказа — кандидат сам разбросает перед вами ниточки, потянув за которые, можно размотать клубок. Пример фразы-маркера, за которую я обязательно уцеплюсь: «у нас были технические разногласия» — уж не «перфекционист технологический» ли перед нами?

Многое можно понять по тому, задает ли кандидат те или иные вопросы. Например, когда мы говорим «react, redux» то классический вопрос чувака «в теме» это «thunk или saga»? Обычно, это начало продуктивной беседы с перекрестными вопросами, когда мы советуемся с кандидатом, узнаем его мнение о той или иной технологии, он узнает больше о нас и нашем подходе к программированию, а мы нащупываем его технический уровень.

Иногда мы спрашивали классические «экзаменационные вопросы» типа «как ты оптимизируешь react-компоненту, чтобы меньше тормозило?», но я считаю этот «экзаменационный» стиль поведения во многом капитуляционным, когда не получается наладить качественный, живой человеческий диалог.

Проведу аналогию с высказыванием Ирвина Ялома и скажу, что хорошее собеседование, это, в первую очередь — человеческая встреча, в которой мы знакомимся и оцениваем, хотим ли мы работать вместе.

P.S. Мы только что провели 7 собеседований за один день и это перебор, так я делать не рекомендую (хотя получилось очень результативно и это балансирует чувство, будто вскопал поле).

P.P.S. Техническое: 1) для бронирования времени собеседования пользуйтесь сервисом appoint.ly, где кандидаты сами выбирают удобное им время из предложенных слотов. 2) проводите собеседования в zoom.us, в режиме gallery, когда экран делится на 3 или 4 части и вы видите лица всех участников сразу. Этот режим максимально приближен к реальной встрече и качество звука в zoom отменное.

А как собеседуете вы? Какое худшее (или лучшее) собеседование было у вас в жизни? Делитесь в чатике @ctodailychat, у нас собралась хорошая компания.

пост №711

Полторы недели назад мы начали поиск второго бэкендера в команду RAWG. Позавчера мы взяли на работу не одного, а двух программистов; расскажу, как мы это сделали.

После публикации вакансии в фб и телеграме (спасибо большое за репосты!), мы взяли неделю на сбор предложений, отвечали всем сразу, что «вернемся на следующей неделе». Бесит, когда наниматели не отвечают на письма. Нам пришло 22 предложения. Из них 10 — в телеграм, 9 — на почту [email protected], 3 — в фб-мессенджер. Почту мы создали как группу в GSuite и завернули в Intercom, чтобы ничего не пропустить. Я вел базу со всеми кандидатами в Airtable, это очень удобно, рекомендую.

Во вторник мы созвонились с Антоном (нашим супер-бэкендером) по зуму и прошлись по airtable-таблице предложений. Пару предложений мы отсекли на этапе сопроводительного текста и резюме, учить совсем начинающих мы пока не готовы. 7 человек нам понравились — там был или внушительный опыт и внятный сопроводительный текст или хороший код. Если кода в первом сообщении не было — я просил прислать его до собеседования. Мы договорились об одном собеседовании на вечер вторника и о пяти — на среду. Согласование времени собеседований заняло пару десятков минут, это феноменально быстро. Дело в том, что почти вся переписка велась в телеграме, это очень приятно. Этот этап занял в сумме пару часов.

Сразу после собеседований у нас появились два явных фаворита — опытные, классные программисты из Питера. Ещё нам понравился второкурсник, у которого был хороший код, горящие глаза и удивительно четкая письменная и устная речь. Мы сделали два офера и по одному из них пришел отказ, так что решили рискнуть и взять одного опытного разработчика и студента без большого опыта.

Больше всего мне запомнился отказ (второй за мою карьеру, кажется). Он пишет: «... Наверное, за годы работы в стартапах, у меня наступила какая-то деформация. Я очень полюбил работу над продуктом и решение бизнесовых задач – не вижу себя без всего этого. ... На нынешней работе несколько спринтов проводил в роли продакт оунера, пока он был в отпуске — понравилось. Пока что научился считать рынки кое-как, проводить Customer Development и тестировать гипотезы...»

То есть, размышляя над нашим предложением, человек понял, что не хочет больше работать программистом. А был идеальный кандидат! Умеет прогать и при этом «видит за деревьями лес», думает о «конечном смысле».

Фан факты:
- я попросил владельца канала с python-вакансиями репостнуть нашу вакансию. Женя (ведущий канала) скоро выходит к нам на работу;
- кандидат-студент узнал о вакансии из слек-сообщества python-ru;
- из 30 кандидатов — один школьник и две девушки (не пересекающиеся множества);
- всего 2 предложения от аутсорсеров. Обычно бывает десяток; видимо, сейлзы плохо мониторят телеграм и фб.

В заключение: спасибо вам большое, дорогие читатели! Без вашей поддержки, поиск бы был гораздо дольше и скучнее. Я собираюсь воспользоваться этим каналом ещё раз на следующей неделе, при поиске фронта.