Как найти работу? Резюме, собеседования, подготовка

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

Коротко напомню, чем я занимался до создания канала: развивал свои проекты, было много плохого кода, не было никакого опыта работы в компании (почти). Так сложились обстоятельства, что в декабре 2018-ого пришлось искать работу — первую официальную работу в команде.

Началось всё с составления резюме. На hh я тегами набросал то, с чем когда-либо работал: php, Symfony, jQuery, twig, linux … . Указал, что хочу получать от 40 000 и назвался Junior-php-разработчиком. Наверное, плюсом играло то, что у меня уже было высшее образование и какой-никакой опыт работы: около полугода в задрипанной студии на bitrix (что опытом назвать можно с натяжкой) и остальное время — на своём проекте под своим же ИП.

Обновил резюме и начал ждать. Через пару часов ожидания с применением тактики «главное — верить» я стал раскидывать отклики на вакансии, которые более-менее подходили под моё резюме.

На следующее утро монитор мигал сообщением на почте — «Здравствуйте, приглашаем вас решить тестовое задание». На мой отклик ответила небольшая компания, которая разрабатывала большой монолит на Symfony и искала junior-fullstack-разработчика. Почитав задание и не увидев там сложных слов, я с радостью ответил hr’у, что сделаю его до утра, на что hr с не меньшей радостью сказала, что будет ждать.

И это первый урок, который я вынес из этого поиска, — не бывает простых задач. Приступив к задаче в обед, я закончил стучать по клавиатуре около 7-ми утра следующего дня. Простое, с виду, задание несло в себе пару мешочков подводных камней: это и лимитированный доступ к API, с которым меня попросили сделать интеграцию, и параллельная обработка (я бахнул обычный цикл, где запускал и управлял Symfony Process) и ещё много нюансов.

Отправив тестовое и посмотрев красными глазами в монитор ещё с полчаса я решил полежать пару минут, и, как это обычно и бывает, проснулся глубоким вечером. Монитор по-привычному требовал прочитать новые сообщения, среди которых было и от hr’а — меня пригласили на собеседование. Мы договорились о времени и завтрашним утром я был в переговорке.

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

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

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

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

Отработал я там чуть больше, чем полгода, и считаю этот опыт крайне удачным. Отличная команда, много новых знаний по Symfony, по администрированию back-части, по взаимодействию с фронтом и, в последние пару месяцев, работе с этим самым фронтом на Vue.

Через полгода мне написали в telegram — предложили работу в одной большой и известной в моём городе компании. Резюме у меня было закрыто, об уходе я особо не думал, и как меня нашла hr для меня осталось загадкой.

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

Собеседование прошло, на удивление, неплохо. Из положенного часа мы 45 минут проговорили с лидом back-части, который оказался ещё и архитектором проекта. Меня спросили про фреймворки, с которыми работал, немного поговорили о паттернах, о которых я успел узнать на предыдущей работе, немного о структурах данных. Задач и кода на листочке не было, что меня очень порадовало. Остальные 15 минут разговор был с фронтом — на чём писал, с чем работал, может ли это быть синхронным, а это асинхронным. Потом меня спросили об асинхронной обработке множественных запросов, где я выдавил из себя что-то вроде Promise.all, и спросили о компонентах, на которые я бы разбил нарисованную на листочке страницу. Мы попрощались, меня проводили до выхода и с ощущением, что всё прошло неплохо, я поехал домой.

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

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

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

Отработал я в этой компании 3 месяца, сделав для себя важный вывод — мне не подходит энтерпрайз. Всё по минутам, скрам повсюду, огромный флоу поверх разработки, присущий только этой компании. Я многому научился, но многое было излишним и неприменимым где-то, кроме как тут. Отношения с тимлидом не сложились — может быть, потому что он был молодой и лидил второй месяц, может быть — потому что я с треском въезжал туда, где мне не нравилось — в энтерпрайз. Из самого большого плюса, который я для себя вынес — это опыт работы с Node.js, на котором приходилось много и долго писать. Code-style, правила кода, тестирование — это было полезно и приятно. Многое узнал по работе с git’ом, по тому, как ревьювят pull-request’ы, вник в структуру скрама и поработал с кучей сторонних сервисов, помогающих в разработке.

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

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

Собеседования. Их я прошёл порядка 5-ти, и на каждом было что-то весёлое. Но обо всём по-порядку.

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

Через пару дней было ещё одно крайне весёлое собеседование. Я пришёл, напротив сели трое — технический директор, лид фронта и лид бэка. Остановив вьетнамские флешбэки я расслышал вопрос — «Ты больше по фронту или по бэку?». По бэку, сказал я и в меня тут же полетели все виды вопросов — какие есть типы join’ов, какие свойства транзакций ты знаешь, что ты скажешь об этом паттерне, что ты знаешь об индексах, а что об индексах в no-sql, а …

Не успел я перевести дыхание, вопросами начал стрелять лид фронтов. Отбившись от пары и выслушав третий я спросил: «Ребят, а к чему это? У меня в резюме указано, что я backend-разработчик, а вы меня спрашиваете по фронтенду?»

И тут ребята решили мне объяснить, что они ищут человека, который будет решать ошибки. «Работа — стрессовая. Очень напряжённая. Ошибки надо решать на всех языках, которые у нас есть и решать быстро. Ошибки, которые либо только прилетели, либо давно лежать где-то в трекере и их никто не делает. Прекрасная работа, не правда ли?» Выслушав, я пожал всем руки и убежал.

Параллельно с походами я сел решать тестовое в ещё одну компанию, на Symfony. Потратив 3 дня — сбросил hr’у. Мне перезвонили и сказали — «Вы отлично сделали тестовое задание. Приглашаем вас на разработку под WordPress. Готовы? Только нужно будет сделать ещё одно тестовое». Немного захлебнувшись таким предложением я культурно с ребятами попрощался.

В итоге, сейчас я уже несколько месяцев работаю в компании, в которую проходил последнее собеседование. Крайне адекватно меня погоняли по теории, мы поговорили о плохом коде, о базах данных и мне сделали оффер. Компания — средних масштабов. Продукт, на котором я работаю — принадлежит компании. Скрам внедрён так, чтобы это было комфортно и не мешало работе собраниями через каждые 20 минут. Пишу backend на Laravel, немного пописываю фронт на Vue + Nuxt.js. В общем — нраица.

Выводы

  1. Не бойся ходить по собеседованиям. В любом случае — ты ничего не потеряешь, а вот приобретёшь многое — потенциально, новую и более лучшую работу. Как минимум — подтвердишь свою цену и узнаешь, о чём сейчас спрашивают на собесах.
  2. Никогда не увольняйся, пока не нашёл новое место или не скопил денег, которых тебе хватит на несколько месяцев беззаботной жизни. Это очевидно, но важно об этом помнить в любой ситуации и не забывать в моменте, когда эмоций больше, чем здравого смысла.
  3. На собеседовании, если ты идёшь на позицию выше, чем Junior и у тебя есть реальный опыт разработки — помни об этом. Не стоит нервничать. Помни, что в первую очередь ты нужен компании, а не она тебе. Найти работу разработчику, у которого есть опыт — дело пары недель максимум. А вот найти хорошего разработчика — сложно. Собеседование — это цирк лжи, где ты пытаешься себя продать, а компания ломается и показывает, насколько она хороша.
  4. На собеседовании не стоит рассказывать о чём-то, кроме работы и флоу вокруг работы. Все твои слова могут быть использованы против тебя.
  5. Энтерпрайз — не для всех. Кто-то кайфует от опен-спейсов, собраний каждые 20 минут и рабочему графику, расписанному по минутам. Кому-то это чуждо. Стоит поработать в такой компании чтобы понять, твоё это или нет. Но большая компания — не всегда хорошая для тебя, как для разработчика.

Спасибо, что дочитал. Надеюсь, что-то интересное ты для себя вынес 🙂 Если есть какие-то вопросы — всегда можем обсудить в нашем ламповом чатике:

1000 дней программирования Chat

Всё, что лучше не писать в канале, я пишу в твиттер:

Jun Senior

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *