Мой путь в IT. Сгореть и вернуться из пепла

Часть 1. Предыстория

Привет, Мир! 🍷

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

Начну с небольшой предыстории, что я имел на момент поиска работы.

Я закончил местный ВУЗ по специальности «Прикладная информатика в экономике». Веб-технологии практически не изучали, пару раз пробовали вёрстку на таблицах и фреймах, но меня это чем-то зацепило. Начал сильнее углубляться в эту тему: проходил курсы по фронтенду, смотрел интервью, слушал подкасты, читал книги.

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

Перед написанием диплома я проходил преддипломную практику. Устроился в местную веб-студию. Занимался поддержкой контента в админках, верстал письма, сделал полностью вёрстку для сайта парка развлечений. Он кстати до сих пор живой. Можете считать моим первым проектом. Руководителю так понравилась моя работа, что потом сам подкидывал заказы на фриланс.

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

После окончания ВУЗа, я начал больше углубляться во JavaScript. Прочитал учебник Ильи Кантора, закончил курс по Vue. js от Владилена и начал делать мини-проекты.

Бывали времена когда прокрастинировал и вместо изучения продвинутого JavaScript я опять верстал сайты. В итоге к моменту поиска у меня было свёрстано где-то 10 сайтов.

Сделал себе портфолио.

Это был весь мой багаж знаний на момент поиска работы.

Клевером (🍀) буду помечать моменты, где важную роль сыграла удача. Раньше я думал, что это по большей части случайность, но теперь понимаю — я ошибался.

В конце каждого этапа также буду писать ошибки, которые совершил и как лучше было поступить в той или иной ситуации.

Часть 2. Ошибки

❌ Много времени потратил на HTML/CSS. Технологии интересные, можно бесконечно узнавать что-то новое, но на рынке нет профессии «Верстальщик». Нужно как можно быстрее перейти к изучению JavaScript, а затем фреймворка. Ребята, которых я менторил, делали 2-3 сайта и шли дальше.

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

Часть 3. Поиск работы

В конце ноября 2018, когда стало понятно, что в армию мне не нужно, встал вопрос поиска работы. Оформил проекты, которые делал в рамках изучения Vue (раз, два, три), набросал резюме для hh и телеграмм чата и начал поиски.

Моё резюме так и осталось в истории («Инструменты для работы с дизайном: Adobe Photoshop, Avocode» — помните такие инструметы? 😂). Почему-то тогда мне казалось, что 45к нормальный ценник для джуна. Помню как там начали негодовать, что я демпингую рынок и нужно просить сразу 80+ с таким портфолио. На первых порах было тяжело себя адекватно оценить.

Отдельно хвалили, что так подробно оформляю readme для проекта. У большинства соискатель это был стандартный файл от CLI, я же старался рассказать про проект подробно. Какая стояла задача, как она решалась, как я думал, какие были сложности. Нанимающий смотрит больше не на результат, а на процесс. Как по мне — должна быть история.

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

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

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

Вот она первая работа! Думал, будет сложнее.

Часть 4. Ошибки

❌ Согласился сразу на первый оффер. Нужно походить по рынку, набрать несколько офферов и уже выбирать. Лучше начинать с компаний, которые не очень интересны, от которых не боишься получить отказ. Заодно потренируетесь проходить собеседования, узнаете свои слабые места.

❌ Неправильно оценил себя, из-за чего работал за более низкую зарплату продолжительное время. Если тяжело самим, попросите в каком-нибудь профильном чатике помочь вам.

Часть 5. Аутсорс

Компания, в которую я устроился, занималась аутсорсом. Находила заказчиков, брала проекты, продавала меня как сеньора, а платила как джуну, разницу оставляла себе. Примерно так они существуют.

Формат работы был гибридным, иногда приезжал в офис и уезжал вечером домой, потому что на джуновскую зарплату особо не поживёшь в столице. В основном работал на удалёнке.

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

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

Через пару месяцев второй фронтендер увольняется и вся работа сваливается на меня одного. Нужно делать и новые проекты и поддерживать все старые, а попросить помощи и не у кого. В это же время меня переводят на постоянную оплату, хотя бы это радует.

Работы меньше не стало, а я один. Нужно было думать как оптимизировать работу. Так как все проекты плюс-минус начинались одинаково, я себе сделал шаблон под новые сайты, автоматизировал всю ручную работу по максимуму. Оптимизации картинок, стандартные стили, деплой на сервер, базовое SEO и все в таком духе. В итоге получалось делать лендинг за пару дней.

Через полгода мне накинули ещё 10к к зарплате, но вскоре начались проблемы. Зарплату задерживали, проекты интереснее не становились. Начались эксперименты в структуре, впервые появился проджект менеджер. Особо ничего не изменилось, только усилился микроменеджмент в стиле «ну чо сделал?», «до завтра успеем?». Негодование только усиливалось, причём не только у меня, но и у бэкендера.

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

В каком-то новостном паблике заметил, что идёт набор в школу разработки интерфейсов (ШРИ). Чтобы поступить туда, нужно было сделать вступительное испытание. Было всего три задачи: первая на вёрстку дизайн-системы, вторая на реализацию bem-json, третья на TypeScript. Попробовал сделать задания, но большинство оказались непосильными.

Помню, отложил эту затею вообще, так как ничего не получалось. В последнюю неделю все же решил сделать первое задание на вёрстку, вдруг повезёт.

Сдал задание и забыл. Периодически проверял почту, но письмо с приглашением так и не видел. Подумал, что не взяли, но в один момент получил смс на телефон, что не могут до меня дозвониться и связаться через почту тоже не могут, т. к. я указал невалидную. Короче, epic fail.

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

Пришлось кое-как выживать в Москве на то, что скопилось за это время. После работы приходилось бежать сразу на лекции. В итоге уходил в 9:00 приходил в 23:00.

Кому интересно, лекции первого этапа можно посмотреть на ютубе, второй этап туда, к сожалению, не выкладывался.

За это время сильно прокачался, познакомился с кучей ребят, некоторых из них вижу на конференциях. Все таки круг IT очень узкий.

Был у нас хакатон по алгоритмам и в один момент мне пишет парень (сейчас Лёша — хороший друг, подписывайтесь, если интересует тема криптовалют да и просто саморазвития), что-то по поводу поиска работы, говорит нашёл меня через рекомендации на GitHub (🍀). Не помню, что я тогда ответил, возможно предложил работать со мной, но не суть. Больше мы с того момента не общались. Этот момент стоило здесь упомянуть, вернёмся к нему чуть позже, просто запомните его.

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

Не сказать, что я сильно к нему готовился, почему-то был в себе уверен. Купил книжку «Грокаем алгоритмы» (🍀), прочитал только первые главы, где разбирается подробно бинарный поиск и забил, тогда мне алгоритмы казались чем-то скучным и не применимым во фронтенде.

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

Без отдыха, сразу приходит второй собеседующий — секция алгоритмов. Он принёс с собой листочек с двумя задачами: польская нотация и банкомат. Я жутко тупил на задачах, все-таки нужно понимать какую структуру данных применить, продумать корнер кейсы. Тогда ещё такими навыками не обладал, вообщем, завалил. Собеседование тоже не очень понравилось, собеседующий что-то печатал на ноуте постоянно, в конце просто сфотографировал решение и ушёл. Все таки, хочется когда тебя направляют и следят за ходом мысли.

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

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

Очень долго ждал окончательного решения, и, почти, через месяц пришёл результат — принят на стажёра в команду Яндекс. Образование.

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

Часть 6. Ошибки

❌ Сильно резал себе зарплату, когда неправильно трекал время.

❌ Не совсем ответственно подошёл к ШРИ. Можно было лучше подготовиться и получить сразу более высокий грейд. Причём я знал, что будут такие задачи, так как мы все между собой общались.

Часть 7. Яндекс

Первый рабочий день, 10 февраля, как раз был день рождения.

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

Сильное впечатление на меня произвёл офис, где есть буквально всё. Особенно по сравнению с тем, где я работал до этого.

Выдали макбук, тогда ещё особо не работал с MacOS, но был рад — наконец-то можно будет тестировать вёрстку в Safari не через эмуляторы, а на реальном девайсе.

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

Первая трудность, с которой я столкнулся — это новый стек технологий. React я успел на базовом уровне освоить во время ШРИ, но нужно было доучить redux и redux-saga, хуки. Устроился я под конец недели, как раз было пару дней разобраться.

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

В первый раз начал работать по методологии Scrum. Каждый день в 11:15 митинги, стоя рассказываешь что ты сделал вчера, что будешь делать сегодня, какие есть проблемы. Работал спринтами по две недели, через два спринта проходила ретроспектива, где обсуждали что было хорошего и плохого за эти спринты. Все проблемы фиксировали в баг трекер и исправляли в будущем.

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

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

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

Всё у меня получалось хорошо, я уже думал как останусь в Яндексе надолго, начал изучать более продвинутые вещи по React, типа Next. js, Gatsby.

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

Я остался безработным. Решил сразу не бросаться на поиски новой работы, а сделать пару проектов для портфолио. Плюс я не захотел дальше изучать React, а вернулся на Vue. js. Нужно было время, чтобы вспомнить синтаксис.

В итоге к началу июля я был готов к новой работе, разослал резюме по старой схеме. И тут меня замечает Лёша (🍀), тот, который, мне писал по поводу работы, когда я учился в ШРИ. Только в этот раз уже он реферит меня в свою компанию — Связной.

По условиям меня все там устраивало, в итоге быстро договорились о собеседовании. На собеседовании была классика про JavaScript: переменные, функции, замыкания, эвент луп. Немного поговорили про Vue. js, Vuex, обсудили проект, который я делал во время подготовки. Стоит сказать, если выкладываете свои проекты на GitHub — будьте готовы пояснить за каждую строчку, не нужно просто копировать чужие работы, а то получится некрасиво.

В итоге собеседование прошёл хорошо, мы друг другу понравились и мне предложили оффер.

Так я нашёл свою третью работу.

Часть 8. Ошибки

❌ Строить планы на полгода вперёд — ошибка. На год — фатальная ошибка. Три месяца, не больше. В любой момент может начаться новый ковид или что-нибудь ещё хуже.

❌ Я опять согласился на первый оффер. В теории можно было прыгнуть ещё выше по зарплате.

Часть 9. Связной

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

В Связном не было разделения на команды, все занимались всем. Мне досталось переносить сайт с Twig/PHP на Nuxt. js. До меня уже предпринимались какие-то попытки, но мы решили начать всё с нуля.

Для разработки уже был сделан набор компонентов, из которых можно было бы легко собирать страницы. Open source решения под те задачи было тяжело адаптировать, так как у Связного был свой дизайн, своё видение UX этих компонентов.

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

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

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

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

С этого момента начался мой бурный рост по скилам.

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

В это же время я начинаю замечать, что со мной что-то не так. Мне не хочется изучать что-то новое, я забросил свой Open source, неинтересно делать задачи на работе. Сначала я думал, что просто устал, но это ощущение никуда не уходило. Полное отсутствие мотивации что-либо делать. И чем больше стараешься перебороть себя — тем хуже все становится. Кажется, я выгорел.

Через некоторое время наш CTO (сейчас Юра тоже хороший друг, подписывайтесь, если интересно как живёт руководитель разработчиков в Эмиратах) переходит в Озон (🍀). Все рабочие чатики начали потихоньку умирать, так как он в основном задавал общение.

Вся эта ситуация как-то сильно подкосила настрой в команде, многие начали следом уходить в другие компании. Мой руководитель тоже позвал меня перейти в другое место, я даже успел уволиться, но что-то не сложилось с оффером, в итоге пришлось отозвать своё заявление на увольнение. Решил остаться ещё на некоторое время, подготовиться к собеседованиям.

Спустя пару месяцев мне поступает предложения стать тимлидом (🍀). Руководить нужно было другой командой, но по факту я был лидом в своей библиотеке компонентов, которую сам и разработал. Договорились, что будем развивать эту идею дальше, начнём больше коммуницировать с дизайнерами. Взял пару дней подумать и в итоге согласился. Зарплата поднялась не так сильно. Почему-то думал, что это поможет справиться с выгоранием, вроде что-то новое, неизведанное, но нет. Состояние как будто стало только хуже.

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

Через некоторое время у компании начались проблемы, сначала нам это преподнесли как пиар-ход и что все будет хорошо. Вскоре было понятно, что это не так. Начались урезания премий, проекты начали закрываться, ребят, которые были на аутстафе стали увольнять. Нужно было переходить в другое место.

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

Напоследок оставил собеседование в Озон, куда меня позвал Юра. Не сказать, что это было сложное интервью. Просто лайвкодинг с абстрактными задачами по JavaScript, не алгоритмы как в Яндексе. Закончили парой вопросом по тому как работает браузер, что происходит когда вводим URL в адресную строку и всё.

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

Так я устроился на свою четвёртую работу.

Часть 10. Озон

Формат работы тоже был удалённым, но в этот раз я решил переехать в Москву.

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

Попал я в команду, которая занималась проектом Озон Моменты. Это был сервис для коротких видео о товарах в приложении Озона, которые снимали продавцы. Все было неплохо, делали задачи, начали развивать библиотеку компонентов, как было в Связном. Процессы тоже были хорошо выстроены, на уровне Яндекса.

Под конец 2022 в мире начались массовые увольнения программистов, а в начала 2023 они дошли до нашей команды. Весь наш отдел распустили, людей перераспределили в другие группы.

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

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

В целом, полёт нормальный.

Часть 11. Заключение

Такой получился путь. В целом я доволен своим результатом.

Если посмотреть моменты роста, то там всегда присутствует удача в той или иной степени. Где-то с кем-то познакомился, где-то сделал то, что другие не видели, выкладывал постоянно свои проекты на гитхаб. Смысл в том, чтобы увеличить количество способов, когда удачный момент может случиться.

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

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

В любом случае, сейчас я себя чувствую намного лучше и готов к новым достижениям. Понял свои ошибки.

Какие советы могу дать, исходя из своего пути:

✅ Не бойтесь менять работу раз в год-полтора, особенно на первых порах. Внутри компании практически никогда не будет роста на 100-200%, обычно это 15-20%. Хотя бывают и редкие исключения, как мы увидели на примере Связного.

✅ Удача играет большую роль в жизни, а самое главное ей можно управлять. Скоро сделаю пост про это.

✅ Обрастайте контактами, не забывайте своих прежних коллег. Круг IT — узок.

✅ Не забывайте отдыхать от работы. Не доводите себя до состояние уголька. Гореть, но не сгорать.

Да благословит нас валюта!

Ставьте плюсики, если вам заходит такой формат рассказа. Также накидывайте в комменты, о чём вам было бы интересно почитать — будет круто!

Сталкивались ли вы с выгоранием?
Да, ужасное состояние 😰
Нет, соблюдаю work-life баланс 😇
Повезло ли вам с первой работой?
Да, вспоминаю с теплом 🥰
Нет, это был ад 😡
99
5 комментариев

Привет! А как справились с выгоранием?) (upd. не актуально)

Ответить

Привет! В основном стал лучше соблюдать work-life баланс. Не думаю о работе в свободное время, закрываю ноутбук после рабочего дня и не читаю ничего.

Раньше всё общение было в телеграмме и приходилось миксовать личное/рабочее, в теории надо было сделать отдельный аккаунт, но тогда как-то не подумал.

В текущей компании взял рабочий макбук, чтобы разграничивать пространства. Также тут свои приложения для мессенджеров/почты. Даже если захотеть, я никак не прочитаю что-то по работе без VPN.

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

1
Ответить

как на счет того, чтобы внимательно, а не по диагонали прочитать?

Ответить