Хочу поделиться с сообществом своим недавним опытом поиска работы, сообщить, так сказать, вести с передовой. Несмотря на то, что все написанное – абсолютно субъективно, заметка будет полезна для других IT-шников. Особенно – если они интроверты и редко ходят по собеседованиям.
А еще, полагаю, многим будет любопытно, какая метаморфоза произошла с рынком работы в связи с последними событиями.
Итак, сначала немного о себе.
Исключительно чтобы читатель мог провести «нормировку» опыта.
Я разработчик преимущественно на стеке .NET + MS SQL. Начал работать еще со студенческой скамьи, общий стаж работы почти 20 лет. Четыре года назад перешел из Senior backend .NET developer в тимлида небольшой команды в Москве. Два года назад старые друзья сманили меня в Германию на «синьера», а через полгода опять стал тимлидом маленькой команды из немца и индуса.
И вот, в феврале этого года я вернулся из Германии, преисполненный уверенности, что за таким клевым «играющим тренером», как я, выстроится очередь из работодателей. Пока занимался переездом (привет Каширскому таможенному посту), пока семейными делами (привет роддому № 8) я и не заметил, как на мир обрушился вирус. Пришлось срочно пересмотреть планы на отдых, и пока еще экономика не скукожилась окончательно, поискать себе теплое стабильное местечко.
Сказано – сделано! Вывесил английское и русское резюме на Headhunter и на Liknkedin, откликнулся на «вкусные» вакансии и стал ждать.
Сперва – о плохом.
- Тимлиды не нужны. Совсем. Максимум, что мне предлагали – поработать полгода, втянуться, усвоить предметную область, проявить себя, и вот тогда… Некоторые компании настолько правдоподобно описывали перспективу, что я им поверил. Другое дело, что неохота подниматься на одну и ту же карьерную ступеньку третий раз подряд.
- Сравнивая опыт поиска работы в прошлом и сейчас, я вижу, что спрос уменьшился в разы. Предыдущий поиск работы срубил меня шквалом звонков. Я просто был не в состоянии их обработать. Сходив на 3 собеседования на должность «синьера», я получил 3 предложения, причем два было на должность тимлида. Я принял предложение и быстро убрал резюме. Сейчас же, имея за плечами опыт работы тимлидом в международной компании, я две с хвостиком недели активно проходил собеседования. Тратил на поиск работы по 8-10 часов в день. За эти две недели я прошел больше собеседований, чем за предыдущие 20 лет. Итог: ни одного предложения на тимлида, несколько предложений на «синьера».
- Английский не нужен. А ведь я прицельно откликался на вакансии хотя бы со слабым намеком на рабочий английский. Не хочу терять знания, нажитые непосильным трудом за границей. Те иностранные компании, которые чудом не ушли из-за санкций, свернули найм из-за вируса. А нашим компаниям достаточно навыка читать Stackoverflow со словарем.
- Кое-какие особо настырные компании воспользовались ситуацией и попытались нанять меня на должность «миддла». «Искренне» не понимали, почему я отказываюсь. На встречное предложение рассмотреть мою кандидатуру на должность CTO — обижались. Полагаю, демпинг рассчитан на тех, кто потерял работу и находится в безвыходной ситуации.
- Некоторые компании замораживали найм прямо в процессе собеседований. Luxoft, например.
- Linkedin в Москве не работает. Не в том смысле, что заблокирован, а не работает как платформа для поиска работы. За время поиска у меня было только два контакта с HR через Linkedin, что вообще несопоставимо со 100+ контактами через Headhunter.
Теперь – о хорошем.
- «Синьеры» по-прежнему нужны. За две недели было 100+ контактов, ~30 собеседований с HR, ~20 технических собеседований, 3 оффера и 3 «пред-оффера». Пред-оффером я называю состояние, когда осталась проверка безопасников или собеседование с «биг боссом», которые я обычно прохожу хорошо. Думаю, предложений было бы больше, если бы я не отписал всем HR, что нашел работу. Да, если вы «джун» или «миддл» – новость так себе.
- Часть компаний «оседлали» или вот-вот «оседлают» волну, и им нужны разработчики здесь и сейчас.
- Зарплаты (на мой непросвещённый взгляд) не просели.
- Оформление за редким исключением – белое. Из десятков собеседований только в одном месте предлагали серую схему, а во втором месте предлагали ИП. Напомню, я говорю про Москву. В других регионах все может быть иначе.
- Собеседование проходят по скайпу. Везде. Даже в банках. В первую неделю поиска я проходил по 4-6 собеседований в день с HR, а во вторую неделю – 1-2 беседы с HR плюс 2-3 технических интервью. Плюс постоянно работал с почтой, мессенджерами и короткими звонками от HR. В «мирное время» было бы тяжело выйти даже на половину подобной продуктивности.
- Следствие удаленных собеседований: весьма удобно во время звонка или расшарить экран, или использовать средства одновременной работы с текстом. Это нужно чтобы решать задачки и писать код. По сравнению со стандартным подходом написания кода на бумажке – это просто прорыв!
- Еще одно следствие: если компания произвела неоднозначное впечатление, и есть сомнения, нужно ли проходить собеседование — его стоит пройти. В худшем случае будет потерян час, максиму — два, и приобретен опыт. Зато может оказаться, что первое впечатление — обманчиво. В докризисное время я отказывался от сомнительных собеседований, т.к. потери составили бы до половины дня
Следующий пункт будет интересен преимущественно .NET разработчикам.
- Для затравки идут ссылочные и значимые типы, где размещаются, отличия, преимущества, недостатки. И всегда ли классы в куче? Всегда ли структуры на стеке?
- Наследование и полиморфизм в задачках, когда что-то от чего-то унаследовано с нарушением здравого смысла (за такое в продакшене руки отрывают) и нужно догадаться, что сделает программа.
- Дают код, в котором происходит Boxing и unboxing, и надо сказать, что будет в результате. За такой код тоже руки надо отрывать, и в реальной жизни он не встречается, но ответить надо.
- SOLID, KISS, DRY, YAGNI своими словами.
- GC. Куда же без него, родимого. Начинают с общих принципов работы, которые, однако, надо знать в деталях. Маркировка, сжатие. Поколения. Очередь финализации.
После теоретических вопросов переходят к описанию двух-трех проблем и спрашивают, как с ними бороться на практике. От общих вопросов, типа что будет при большом количестве создаваемых объектов и до специфических проблем при работе с большими объектами. - IoC/DI
- WCF, REST API
- async/await
- Микросервисы — обзорно. Наиболее часто спрашивали аутентификацию/авторизацию.
- Порассуждать на тему индексов и транзакций в SQL Server и написать простенький запрос на SQL. Если позиция предполагает серьезные знание SQL, то спрашивают про оптимизацию запросов, выявлению узких мест, в частности, работу с планом запроса
- Потоки и синхронизация. Monitor, Mutex, Semaphore, AutoResetEvent, ReaderWriterLock. Неплохо еще знать Slim версии объектов. Конечно же Interlocked и volatile. Причем ответы на вопросы о потоках и объектах синхронизации очень, ну просто очень весомы. По ним определяют степень «сеньористости». Кроме теоретических вопросов обычно просят сделать набросок решения какой-нибудь несложной задачи. Например, сделать, чтобы первый поток выводил на консоль «ping», а второй — «pong», и делали бы они это строго по очереди.
Для подготовки к интервью неплохо бы полистать Рихтера «CLR via C#» (да, да, он все еще актуален) и написать тестовую задачку, типа реализации «поставщик/потребитель» на Monitor, а потом то же самое на AutoResetEvent. Это покроет 80% вопросов.
Какие компании остались на рынке?
Одним словом — солидные. Увы, далеко не всегда IT является у них основным источником дохода.
Это надо учитывать. Мне много звонили из банков, брокеров, бюро кредитных историй. Были, правда, и продуктовые компании. Их можно поделить на две категории: или имеющие серьезные гос. заказы, или просто успешные ребята, которые не проиграли от кризиса.
Ах, да, было еще несколько интеграторов и пара аутсорсеров. Но к ним я трудоустраиваться не хотел. На данном жизненном этапе я искал прежде всего стабильность и чтобы нервы не трепали.
По этой же причине, несмотря на свой неплохой английский, я не пробовал искать удаленную работу на иностранные компании. Пара моих приятелей, работавших на Европу и Штаты уже потеряли работу, еще несколько — в подвешенном состоянии.
Как проходит собеседование?
В 40% случаев все начинается со звонка, 45% — письмо, 5% — сообщение в мессенджере, 10% — отклик на hh.ru. Если после состоявшегося контакта обоюдный интерес сохранялся, назначалось время собеседования.
Первое собеседование с HR было в 90% случаев по телефону, 10% по скайпу и занимало у меня 30-60 минут. Это долго. Возможно, я был излишне болтливым, но HR досконально выспрашивали о моем опыте все-все-все и даже больше. Они, в большинстве своем, были приветливы и эмпатичны, а также удивляли меня достаточно хорошей информированностью. Кроме того, они активно интересовались, чего же я ожидаю от нового места работы.
Были, правда, и такие HR, которые не в состоянии никого ни в чем заинтересовать. Они бубнили описание вакансии роботизированным голосом и не были способны ответить на вопросы. Но их — немного. И благодаря ускорившемуся естественному отбору, скоро станет еще меньше. Некоторые собеседования заканчивались с пониманием того, что нам не по пути. Что сразу же аккуратно озвучивалось, и это — клево. Я так думаю.
Гораздо чаще мне говорили, что передадут информацию коллегам. Дальше было два варианта: либо HR исчезал, либо оперативно назначал техническое интервью. В случае исчезновения основное сожаление у меня вызывало то, что я не понимал, что пошло не так и как надо действовать в будущем, если проблема на моей стороне.
Второе собеседование — техническое. Оно проходило в 80% по Скайпу и 20% по Зуму. Как правило, участвуют в нем 1-2 интервьювера. Но пару раз я говорил с 5 людьми сразу! Надо сказать, что технари собеседовать удаленно еще не привыкли. Многие чувствуют такой формат некомфортным. Со временем, полагаю, привыкнут.
Мне, как соискателю, тоже непривычно. Но очень минимизирует временные затраты. Занимает 1 — 1.5 часа. Максимум — 2 часа. Еще в ходе интервью, бывает, возникают технические сбои. У интервьюверов может быть плохое освещение, плохой микрофон, плохой интернет. Пару раз ребята сидели напротив окна и я разговаривал с темными силуэтами. Тот же набор проблем может быть на стороне соискателя.
Это кажется банальным, но я бы всем посоветовал заранее проверять, что вас хорошо слышно и видно. Ход собеседований был стандартным: рассказать о себе, ответить на вопросы, порешать задачи, задать встречные вопросы.
Примечательно, что интервьюверы поделились на две категории: те, кто в случае моей ошибки кратко сообщал правильный ответ, а также те, кто просто переходил к следующему вопросу.
И это в корне меняло атмосферу собеседования.
Мне ни разу не захотелось устроиться туда, где не было обратной связи прямо во время собеседования. И где работодатель не показал своей человеческой заинтересованности. Потому что я капризный и хочу работать с клевыми людьми.
Надо сказать, что с обратной связью, да и вообще с невербальными сигналами, возникают сложности. Из-за удаленного формата их нелегко считать. Да и технари с другой стороны баррикад тоже беспокоятся. Они встречают кандидата настороженно, вероятно, им трудно понять, что за человек перед ними. Растопить лед удается далеко не сразу.
Иногда было еще и третье собеседование — с руководителем. Но чаще всего он присутствовал на втором.
Собеседования проходили в разные дни. Оно и логично, т.к. цель запихнуть все в один день, чтобы кандидат несколько раз не катался, потеряла смысл.
В общем, как вы видите, удаленное собеседование подобно не удаленному. Но только — удаленное.
И если вы решили или вынуждены сменить работу — это вполне возможно. Просто потребуется приложить серьезные усилия.
Автор: Gradiens