Не для всех IT-профессия была первым и очевидным выбором. Герой этого текста шесть лет занимался химией и был уверен, что свяжет с ней свою жизнь. Однако IT-сфера дала ему больше возможностей: он прошел путь от маленькой компании по разработке сайтов до позиции в Amazon.
Первый опыт в IT: я начал с языков С и ничего не понимал
Я впервые столкнулся с IT на втором курсе магистратуры. Учился на химика в Томском государственном университете. Один из моих сокурсников бросил учебу и ушел в разработку, рассказывал, что там хорошая зарплата. У меня было свободное время, поэтому я решил посвятить его программированию. Работать в IT я тогда не планировал, но был уверен, что этот навык мне в любом случае пригодится: в химии много расчетов, которые можно автоматизировать.
Я начал изучать С. Это был первый попавшийся язык программирования, который я нагуглил. Проверил — вакансии для разработчиков на C есть, — и взялся за дело. Конечно, для новичка С оказался сложным, я ничего не понимал. Тогда я поговорил с другом, который ушел в IT, и он посоветовал мне Python. Сначала я учил его по книгам, потом прошел курс на Coursera, еще пару на Stepik.
Наступило лето, я защитил магистерскую работу и поступил в аспирантуру. Денег в ней предлагали немного, поэтому пришло время искать работу или хотя бы подработку.
Первая работа: сложно было все
Я параллельно искал работу химиком и программистом. Ставку делал, конечно, на химию — даже не думал о том, чтобы быть разработчиком фултайм. Проблема была в том, что в Томске много вузов с химическим образованием, но мало предприятий. Найти работу по специальности было тяжело.
Наконец я нашел вакансию на молочном заводе недалеко от Москвы. Но работодателю был нужен военный билет, которого у меня не было. Это была моя последняя попытка устроиться химиком, после я решил сосредоточиться на программировании.
Увидел, что в компании моего друга-программиста есть вакансия, написал им и предложил взять меня стажером. Друг меня порекомендовал, я прошел собеседование. Несмотря на то что тогда я знал мало, меня взяли. Компания делала небольшие сайты для записи на услуги, например, в барбершоп.
Я писал бэкенд на Python и Django. Мне нужно было разрабатывать функционал сайта, чтобы пользователь мог выбрать услугу и специалиста, оформить запись, отменить ее или перенести. Первое время сложно было вообще все, приходилось сидеть и разбираться в каждой задаче. Я даже не знал, что такое JSON (текстовый формат обмена данными на JavaScript). Я спрашивал всех коллег, гуглил, сидел на Stack Overflow. Команда была довольно отзывчивая, поэтому мне помогали, но с любым вопросом я сначала старался разобраться сам, чтобы не тратить время коллег.
В штате этой компании было много начинающих разработчиков. Как только они набирались опыта, уходили в другие места. Так сложилось и у меня: спустя несколько месяцев работы я начал искать более интересный проект.
Вторая работа: изучал программирование почти круглосуточно
Я нашел вакансию в локальном томском стартапе Supl.biz. Это веб-платформа, которая связывает поставщиков и закупщиков товаров и материалов. На этой работе я делал обновленный сайт для поставщиков, а также внутреннюю CRM-систему для операторов кол-центра.
В Supl.biz я освоил много новых инструментов. Например, систему управления данными Redis, фреймворки Restи Angular, Elastic Search, Jinx. Мы делали сайт полностью: и фронтенд, и бэкенд. Работать с фронтендом мне не очень понравилось, но познакомиться с ним было полезно. Единственный минус работы — маленькая по меркам IT зарплата, все-таки это был стартап.
В тот год я занимался программированием почти круглосуточно: днем работал, вечером читал и изучал. Мне очень нравилась команда: все мои коллеги были заинтересованными, мы ходили вместе на обеды и постоянно обсуждали программирование. Со многими людьми из Supl.biz я до сих пор поддерживаю связь.
Первый фейл: сложно посчитать, сколько денег потеряла компания за один день
Первый большой провал на работе случился как раз в Supl.biz. Мы создали новую платформу для поставщиков и переносили ее на домен. Проблема была в том, что ее очень сложно откатить. Мы запустили платформу в понедельник, и она просто не заработала. Это значит, что у звонящих поставщикам не было контактов, чтобы с ними связаться. А если никто не звонит поставщикам, то заказов нет ни у кого, и вторая платформа — для закупщиков — тоже простаивает. Сложно подсчитать, сколько денег компания потеряла за этот день.
Весь понедельник мы откатывали платформу. В следующий раз поступили умнее и запланировали запуск на субботу, когда звонков почти нет. В кол-центре работали двое дежурных, которые проверили, что все работает.
Первая должность в крупной компании: попал в Яндекс со второго раза
После Supl.Biz я несколько месяцев поработал в компании «Квантум Софт», где участвовал в разработке B2B-сайтов для американских заказчиков. Параллельно начал развивать свой профиль на LinkedIn и получать приглашения на собеседования.
Мне написал рекрутер Яндекса и пригласил на работу. Это лучшая компания в России, и отказываться было бы странно. Сначала я прошел три лайвкодинг-интервью — это формат собеседования, на котором нужно программировать в реальном времени под наблюдением работодателя. Мне предложили решить алгоритмические задачи. Все прошел с первого раза, хотя довольно плохо знаю алгоритмы. Меня пригласили на интервью, оплатили билеты до Москвы и обратно.
В Москве рекрутер сказал: «Мы практически тебя берем, нужно просто познакомиться с командами, рассказать про свой опыт. Затем команды будут выбирать тебя, а ты — их. С кем произойдет совпадение, с теми будешь работать». Расслабленный, я приехал на собеседование. Но оказалось, что это совсем не беседа об опыте. Все четыре команды забросали меня задачами. Я только прилетел из Томска, у меня джетлаг — проходил интервью убитый. Но мне показалось, что с некоторыми задачами я справился. Когда вернулся в Томск, пришло сообщение от рекрутера: «Ты не прошел, можешь попробовать через полгода».
Через полгода, летом, я снова собеседовался в Яндекс. Интервью поставили онлайн на девять часов вечера по Томску. На следующий день у меня была свадьба, и как раз в девять часов в Томск приезжали мои родители. Я поехал к другу, чтобы все организовать и он смог встретить мою семью. Вызвал Яндекс Такси до дома, чтобы успеть на собеседование, но машина не приехала. Пришлось проходить лайвкодинг с компьютера друга. Мне звонят работодатели и говорят: «Привет! Мы из Яндекс Такси». Я отвечаю: «Привет! Я прохожу интервью за чужим компьютером, потому что ваша машина не приехала».
Собеседование прошло нормально, мне снова предложили приехать в Москву на встречу с командами. Я был готов ко всему. Мне поставили восемь собеседований по полчаса. На этот раз мы действительно обсуждали опыт, и код я не писал вообще. В итоге меня выбрали несколько команд, я устроился в Яндекс Такси и переехал в Москву.
В Яндексе работал уже мидлом. Сначала меня взяли в одну команду, потом я попал в разработку скидок и делал функционал для Такси, Лавки и Еды. Если в Лавке вы видели перечеркнутую цену, я к этому приложил руку.
Если в стартапе я делал и фронтенд, и бэкенд, и инфраструктуру, в крупной компании можно сосредоточиться на более узких задачах. Было очень интересно сидеть в офисе рядом с людьми, которые выступали на конференции Highload или являются представителями C++ в России. Я начал смотреть своих коллег на YouTube и покупать их книги. Также в больших компаниях много плюшек: например, массажист в офисе, бесплатная еда и такси.
Первое собеседование в международную компанию: я не попал в Google
После Яндекса я около девяти месяцев поработал в Ozon, уже на позиции senior-разработчика. Параллельно начал пытаться устроиться в зарубежную компанию. Я решил, что хочу работать в Microsoft, но проходил все собеседования, которые мне предлагали, чтобы набраться опыта.
Основной источник офферов — это LinkedIn. Нужно заполнить свой профиль, постоянно добавлять актуальную работу, а когда добавляют в друзья — добавлять в ответ. Сначала мне написал рекрутер из Google и назначил созвон. С этого традиционно начинается отбор в зарубежную компанию. Рекрутер проводит первичный скрининг ваших навыков. Если вы проходите этот этап, дальше вас ждет лайвкодинг с алгоритмическими задачами. Следующая ступень — еще пять интервью, два или три из них — решение задач. Одно интервью — поведенческое: на нем дают рабочие ситуации и спрашивают, как бы вы поступили, например, в случае конфликта с менеджером. Еще одно интервью — по дизайну продукта. На нем мне предложили спроектировать аналог Zoom (Google Meet), спросили, как бы я это сделал. Две недели я ждал ответа и в итоге узнал, что не прошел.
Первая работа в международной компании: я превратился в джуна в Amazon
Рекрутер Amazon написал мне в первый же месяц работы в Ozon. Чтобы подтвердить свои навыки, я программировал, решал алгоритмические задачи и прошел пять часовых интервью в один день.
Подготовиться можно было лучше и пройти интервью успешнее, также мне не хватило моего уровня английского. Чтобы попасть в крупную компанию типа Amazon, важно не только быть хорошим специалистом, но и знать много о компании, понимать ее принципы и применять их в своей работе. В итоге я попал не на ту позицию, на которую рассчитывал.
Грейдов здесь больше: я пробовался на L5, а попал на L4 — то есть практически стал джуном. Компания помогла мне с документами — для этого они нанимают аутсорсеров, которые оформляют разрешение на работу и визу. Это было просто, но долго. Пока я ждал визу, успел отработать в Ozon девять месяцев.
На новой работе я пару месяцев, прошел онбординг и приступил к задачам. Я — разработчик на продукте ElastiCash: это масштабируемый сервис кэширования памяти от Amazon. Задачи не слишком отличаются от того, что я делал в Яндексе. Джунам здесь платят столько же, сколько в Москве — на должности senior. При этом жизнь в Дублине дороже, чем в Москве.
Адаптироваться оказалось несложно: у меня много коллег из России, и я в целом часто встречаюсь с русскоязычными эмигрантами. Недавно даже попал к русскоговорящему стоматологу. Я работаю на проекте, релиз которого — через полгода, поэтому жестких дедлайнов нет, работаем размеренно.