найм

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

За свою карьеру я прособеседовал пару сотен специалистов, но я точно не эксперт в рынке труда. То ли дело Кира Кузьменко — гость нового эпизода нашего подкаста.

Кира работала заместителем HR директора mail.ru, а теперь у неё своя компания, которая занимается поиском IT-специалистов. Кира наняла тысячи программистов и хорошо знает рынок.

Я задал все стыдные вопросы и впервые всерьез засмущался во время записи. Это — 12 эпизод подкаста и Кира — первая герой-женщина. Кто виноват в том, что в IT так мало женщин мы тоже обсудили.

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

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

Второе наблюдение чуть более общее — до коронавируса мы с Федей указывали удаленку как своё конкурентное преимущество. Теперь, из-за коронавируса, удаленка стала новой нормой, причем больше на западе, чем в России. И конкурировать порой приходится со стартапами из Штатов и Израиля, где зарплата в 8 тысяч зеленых в месяц за крепкого мидла — не редкость 💸

Придется придумывать новые конкурентные преимущества, до которых корпораты и стартапы пока не дотянулись и вряд ли дотянутся. Пока думаем об асинхронности и о том, что с нами не нужно сидеть в слеке 24/7, а можно делать «глубокую работу». Людей, которые понимают ценность такой культуры меньше, чем тех, кто уважает удаленку — нужно лучше объяснять и продавать. Радует, что такие люди есть, а нам не нужно много, так что, надеюсь, ещё не всё потеряно 🚀 Если пишете на питоне, рубях или жаваскрипте и любите работать по своему расписанию, четко и без горячки — пишите Феде на fedor@borshev.com

Мы с Федей ищем технического директора в igooods себе на замену.

igooods — это доставка продуктов из гипермаркетов. Сотни тысяч клиентов, тысячи заказов в день, миллиард оборота в месяц. 36 городов России. В партнерах — Метро, Лента, Призма, Вкусвилл, Ашан, Глобус, Карусель, Окей.

Техническая команда — 31 человек. Под капотом рельса и реакт, нативные мобильные приложения для iOS и Android.

Вы заберёте разработку, которая находится в процессе трансформации от небольшой уютной тусовки к машине по зарабатыванию денег. За последние полгода производство стало работать чётче, но до швейцарских часов ему пока далеко — много вещей делаются на ручном контроле. Вам предстоит выстроить QA, доукомплековать продуктовые команды, до конца перейти на сервисную архитектуру (цель — через полгода перестать писать код в монолит) и создать систему управления техдолгом.

Вторая задача — подчинить разработку бизнесу, работая бок о бок с CPO. Каждый джуниор-фронтендер должен знать, на какую метрику повлияет задача, которую он сейчас делает, а любая гипотеза про деньги должна проверяться не дольше трёх недель.

Мы с Федей запустили эти процессы, но чтобы завершить работу, нужно жить в Питере.

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

Офис в Питере, помощь с переездом. Подчинение напрямую владельцу бизнеса; основной рабочий партнер — CPO Андрей Родин.

Пишите краткий рассказ о себе мне в личку или на s@samat.me.

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

Причины две:

1) Нанимать программистов клиентам трудно. Трудно потому, что многие разработчики-крутаны хотят работать с нами, а переходить навсегда к нашему клиенту — не хотят.

2) Не всем клиентам нужна своя внутренняя команда разработки. Часто клиент хочет запустить первую версию продукта, проверить гипотезу и только в случае успеха будет нанимать программистов на постоянку.

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

Что это значит практически?

💼 Для клиентов: можно нанять нас на разработку MVP, а уже потом заказать у нас себе найм команды внутрь, по необходимости. Пишите мне в личку. Очередь из клиентов на 3 месяца вперед, но оно того стоит.

🛠 Для программистов: мы открываем большой найм в команду «Федя и Самат». Много разных проектов, технологий, бизнес-задач и непременно высокий уровень качества. Стек — python и js. Пишите Феде на fedor@borshev.com.

Ух.

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

Во первых, нужно выбрать, кого собеседовать. Мы смотрим на исходный код. Просим ссылку на репозиторий, 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, у нас собралась хорошая компания.

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

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

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

Я вчера уволил троих программистов из семерых в команде. Чувствовал, что лягу и умру, но нет. Проснулся сегодня и ещё жив.

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

В любом случае, пост не про то, как мы делаем стартап, а про то, что трое отличных программистов и дизайнер ищут работу:
- Саша — фронтендер, неплохо понимает про продукт и имеет опыт управления людьми и дизайна (remote);
- Сережа — космический фронтендер (знает haskell!), чуть подкачать умение общаться с людьми и будет senior (Харьков или remote);
- Артем — идеальный начинающий бэкендер (3 курс плехановки), с горящими глазами и нормальным умением общаться с коллегами (Москва или remote);
- Эрлан — хороший дизайнер интерфейсов, умеет продумывать логику и не забывать при этом детали (remote).

Фронт у нас на react с SSR, Redux, Webpack и прочим стандартным набором, а бэкенд — на Python Django DRF с postgres, Celery и крупным парсингом внешних интернетов. Подробные рекомендации и контакты парней — в личке @samatg.

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

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

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

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

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

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

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

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

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

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

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

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

Наняли недавно программиста с помощью hr-агенства, заплатили агенству за это полмиллиона рублей.

Выясняю, что этот программист читает Федин канал и спрашиваю: а что же ты сам нам не написал? Мы ведь постим все вакансии.

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

Морали не будет. Нанимаем: питон-лида в Upmarket; рубиста, фронта и дата-инженера в Вебиум; ведущего фронта (вью) и питониста-руководителя разработки к себе.

Gitlab - один из трёх ведущих сервисов для хранения кода (конкурент github и bitbucket) обсуждает правило, по которому запретит нанимать сисадминов и инженеров техподдержки, живущих в России и Китае.

«Наши клиенты прямо просят об этом и вообще, это становится нормой для нашей индустрии», пишет Gitlab. (италик мой)

Gitlab - одна из известных remote-first компаний, где все сотрудники работают удаленно. У них есть подробная публичная книга-инструкция, «как работать в Gitlab» и поэтому обсуждение этого правила стало публичным.

Если вчитаться в комментарии обсуждения между сотрудниками компании становится ясно, что Gitlab пытается выиграть какой-то немаленький контракт и это требование включено в него. Предположу, что контракт с какой-то околоправительственной организацией. (легко найти на странице по слову contract)

——

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