Отправить статью

Из Mail.ru в американский стартап: путь Павла Минеева, фронтенд-разработчика June Homes

Обычно IT-разработчики по мере наработки опыта переходят из маленьких компаний в большие. Но у фронтенд-разработчика Павла Минеева свой путь: после Mail.ru, Rambler и Рокетбанка он пришел в американский стартап June Homes. В интервью он рассказал, в чем мотивация такого перехода для успешного специалиста.

Из Mail.ru в американский стартап: путь Павла Минеева, фронтенд-разработчика June Homes
Фото: Павел Минеев

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

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

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

Дальше ты не мелочился и пошел работать сначала в «Рамблер», а потом стал разработчиком в крупнейшем почтовом сервисе Mail.ru. Скажи, почему именно Mail.ru и как ты туда устроился?

У меня не было цели попасть именно туда. Все произошло случайно — бывшие коллеги порекомендовали меня эйчарам из Mail.ru. Я прошел три собеседования, все были достаточно сложными, никогда раньше мне не приходилось с таким сталкиваться. Но я справился, и мне предложили работу. Сначала я долго отказывался, но все-таки решил попробовать. И не пожалел.

Меня взяли как обычного фронтендера, приходилось очень многое осваивать и многому учиться. В компании практически все системы были свои, не использовалось никаких популярных фреймворков. Так как все писалось на чистом JavaScript, пришлось углубляться в тонкости языка. Постепенно я набрался опыта и вырос до ведущего разработчика. Стал заниматься в проекте не только разработкой и развитием, но и архитектурой в том числе.

А чем именно ты занимался в Mail.ru?

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

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

Расскажи чуть подробнее про highload, в чем особенность такого проекта?

Во время работы в Mail.ru я выступал на двух конференциях. Одна из них прямо так и называлась — Highload++. Там я как раз рассказал, как делается высоконагруженный проект, которым пользуется очень много людей в разных условиях. Я также рассказал про архитектуру проекта: какой она была до того, как мы ее переделали, как она устроена, почему она очень быстрая, как мы работаем с главной страницей и что мы делаем, чтобы сохранить производительность. Последнее особенно важно, так как эту страницу открывают из разных уголков нашей планеты, на устройствах с разной скоростью интернета, и главная должна везде быстро загружаться, отображаться и начинать работать.

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

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

Отлично! А расскажи, какими инструментами ты пользовался в Mail.ru? Сейчас ты работаешь в небольшом стартапе, а тогда — в огромной компании. Сильно ли в таких компаниях отличается стек технологий?

Скажу сначала про стек. Конечно, он всегда очень сильно отличается в маленьком стартапе и в большой технологической компании. Последние существуют достаточно давно, а когда они начинали, не было практически никаких инструментов, все делали сами. Поэтому каждая такая компания имеет свой набор решений. Mail.ru — не исключение. Это довольно старая компания, которая начинала, когда не было практически ничего. К примеру, весь клиентский код мы писали без библиотек на чистом JavaScript, и сами же писали обвязку. Обвязка — это что-то вроде микрофреймворка, чтобы было удобно писать код на фронтенде.

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

В стартапах есть фокус в том числе на производительность и скорость разработки и доставки до продакшена. Плюс, если сравнивать с большими компаниями, то у стартапов нет столько денег, чтобы придумывать собственные решения. Их главная задача — выйти на рынок. Поэтому используются более-менее зарекомендовавшие себя инструменты. Например, сейчас в June Homes мы используем Next.js на фронтенде и Python с фреймворком Django на бекенде.

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

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

Например, JavaScript. Его использует абсолютно любой сайт, и если какой-либо проект существует в виде веб-сервиса, то зная JavaScript, ты точно подойдешь под требования такой компании. Да, сейчас есть те, кто делает mobile-first проекты. Но даже если ты делаешь приложение, сотрудникам нужно управлять данными в нем, для этого нужен интерфейс. А самый удобный интерфейс для работы с данными — это веб. Поэтому даже в таких компаниях есть вакансии фронтенд разработчиков.

Скажи как профессионал: какое, по-твоему, будущее у фронтенд-разработки? Стоит ли начинать учиться этому в 2021 году? Допускаешь ли ты, что разработчиков однажды заменит искусственный интеллект?

У фронтенда огромное будущее. Да, однозначно стоит начинать учиться.

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

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

Павел, а каким своим достижением в области разработки ты гордишься больше всего?

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

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

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

В June Homes, где я работаю сейчас, меня позвали на позицию principal frontend engineer. Первой обязанностью было полное ревью проекта и анализ, чтобы понять, что и как улучшить в системе для ускорения сайта. Я обнаружил, что основные показатели по поддержке проекта были очень низкими: долгая разработка, занимавшая много времени, низкая производительность и скорость загрузки самого сайта.

Буквально за 2 месяца я сделал мобильную версию и понял, что она работает лучше старой, загружается и работает в 10 раз быстрее. Еще за 2 месяца мы с командой полностью заребрендили мобильный сайт и убрали весь старый код с десктопа, и реимплементировали практически все заново. Это дало огромный буст по производительности, пользователи стали проводить в 3 раза больше времени на сайте и, как следствие, выросло количество букингов.

Какие советы можешь дать тем, кто только начинает свою карьеру и хочет достичь таких же высот как ты?

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

Если вы заметили опечатку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Деловой мир в
и
Деловой мир в
и
2 комментария
Печальная Дева
12 июля в 15:44
Паша, вернись. Я все прощу..😭
0
+1
Ответить
Alexander Supertramp
12 июля в 15:58
Все правильно сказано:)
0
0
Ответить
Отправить
Чтобы оставить комментарий, авторизируйтесь или зарегистрируйтесь