У каждого сервиса в Иви есть свои хранители. У веба — команда «Гамбит», которая делает так, чтобы сайт оставался тем самым местом, с которого начинается путь зрителя в мир контента. Они не просто пишут код, а выстраивают целую экосистему, где скорость, стабильность и забота о пользователе переплетаются с экспериментами, AI-инструментами и собственным мерчем. В этой статье Дмитрий Абраменко, технический менедж��р платформы веб, приоткроет завесу тайн своего направления и расскажет больше о команде.

Расскажи, чем занимается твоя команда? С каким технологическим стеком вы работаете?

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

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

Стоит отметить, что мы сильно отличаемся от других клиентских команд в Иви — как минимум, из-за того, что у нас есть собственный бэкенд для веб-приложения и отсутствует необходимость апрува от вендоров, что позволяет нам гибко подстраивать релизный цикл под потребности бизнеса. В отличие от приложений на iOS, Android или телевизорах, которые являются клиентскими и устанавливаются на устройство пользователя, у нас клиент-серверная архитектура. Поэтому технологический стек очень насыщенный. На клиенте у нас довольно стандартный для индустрии набор: TypeScript, React, Redux и Rsbuild. А вот на сервере у нас развернуто собственное SSR-решение на Node.js, которое мы сильно заточили на перформанс. Мы также самостоятельно пишем, настраиваем наши CI/CD-процессы и разворачиваем инфраструктуру наших сервисов в Kubernetes.

С какими подразделениями вы взаимодействуете по работе?

Исходя из нашей специфики, мы взаимодействуем с огромным количеством команд. Например, как для платформенной команды для нас критически важна скорость ответа от API, поэтому мы постоянно на связи с командами, которые разрабатывают наши микросервисы и бэкенд. Поскольку мы сами управляем своей инфраструктурой, пишем CI/CD и работаем с Kubernetes, у нас плотная история пересечений с командой DevOps-инженеров. Мы всегда работаем через данные, основываемся на них в наших оптимизациях и гипотезах, и в этом нам очень помогает команда аналитики.

Мы постоянно делимся опытом и взаимодействуем с другими клиентскими приложениями — iOS, Android, Smart TV, потому что многие сценарии у нас общие. И, понятное дело, мы всегда рады помочь другим продуктовым командам в решении бизнес-задач. Но самое главное, что хотелось бы отметить — для нас невероятно важно SEO. Поскольку веб — это точка входа в экосистему Иви, SEO для нашей платформы является нашим прямым продуктом. Поэтому мы очень тесно взаимодействуем с SEO-аналитиками и бизнесом, чтобы охват и позиция в поисковой выдаче новых тайтлов и контента для пользователя были на максимально высоком уровне. Это комплексная работа, которая требует слаженности множества подразделений.

Какими своими достижениями за последний год гордитесь?

Мы завезли «рельсы» интернационализации на веб, чтобы иметь возможность легко добавлять любые языки. Сейчас у нас уже есть пул языков, и список будет расширяться силами команд, которые занимаются международными направлениями. Кроме того, мы внедрили механизм SPA-переходов между основными разделами — карточкой контента, главной страницей и плеером. Теперь навигация происходит без перезагрузки страницы, что делает пользовательский опыт гораздо более плавным и комфортным.

Ещё из крутого, на мой взгляд, что наша команда одной из первых в Иви оседлала волну AI, причем не в формате «поиграться с ChatGPT», а системно. Помимо многочисленных автоматизаций, нейро-ревью, мы используем AI для анализа и проработки экспериментов по оптимизациям ещё до выгрузки в продакшн. Это позволяет нам кратно ускорить цикл проверки различных гипотез: мы можем быстрее проверять их локально, используя большие данные, и не ждать результата A/B-теста на проде, если гипотеза провальная. Нейроревьюер помогает разработчикам при создании мерж-реквестов: он подсвечивает проблемы с общим архитектурным подходом и безопасностью, нестыковки в коде, опираясь на наши внутренние гайды. Человек-ревьюер потом смотрит на эту выжимку и может более внимательно изучить проблемные места. Это не замена человеку, а мощный вспомогательный инструмент.

Вайб-кодинг — твое мнение: норм или стрём?

Мне кажется, вайб-кодинг в чистом виде — это нерабочая схема. Человек без технического бэкграунда не сможет создать надежное приложение, которое будет решать его задачу, по крайней мере сейчас. Если у человека есть пробелы в знаниях, он может потратить несколько дней на то, чтобы просто добиться посредственного результата, когда хороший специалист бы сделал это быстрее и качественнее. Твоего агента нужно направлять. Ты должен точно знать, что нужно сделать. Это как маленький ребенок, который может сделать всё, но ему нужно подробно объяснить, ни шага влево, ни шага вправо. Без понимания архитектурных подходов можно сильно запутаться и не выполнить задачу.

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

Как в команде принято отмечать успехи?

Для этого у нас есть особая традиция: специальный барабан, как в «Поле чудес». Мы его прокручиваем, и он решает, как именно мы будем отмечать. Это могут быть пончики, пицца из любимого ресторана, вечерний поход в бар или вечер настольных игр. У нас в команде достаточно много удаленщиков, но ребята часто приезжают в гости, мы видимся и поддерживаем командный дух.

А недавно мы занялись проработкой собственного мерча. Это никак не относится к общему мерчу компании, а просто один из наших способов продвигать, скажем так, бренд нашей команды. Например, в этом квартале наша цель — ускорить релизный ��икл веба, избавить от так называемой «релизной дрезины». Так как наша команда называется «Гамбит», то мы сделали несколько кепок, где этот герой из «Людей Икс» как раз толкает эту дрезину. Это поднимает настроение и объединяет.

Какой был самый большой факап? Чему он научил?

Я специально раскопал одну историю, которая произошла пару лет назад. Для SEO очень важны human-readable URL, мы их называем «хрушками» — это когда вместо цифрового ID в ссылке стоит строка с названием фильма. Изначально у единичного контента (фильмов) на вебе таких URL не было, они были только у сборников и сериалов. Для улучшения SEO нам нужно было их внедрить. Мы сделали все апдейты на своей стороне и выгрузили их. Продуктовая команда начала заводить URL для топовых тайтлов, и они стали доступны. А потом выяснилось, что при открытии такой ссылки и попадании в приложение iOS или Android пользователь вместо карточки контента ловил ошибку или попадал на главный экран. Исторически сложилось, что мобильные приложения не поддерживали такие URL для фильмов, воспринимая их как сборники. Мы достаточно быстро это исправили, но больно было.

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

Как в команде относятся к ошибкам?

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

Как стать частью такой команды?

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

Как относишься к экспериментам и инициативам от сотрудников? Как поддерживаешь профессиональный рост?

Очень положительно. Веб по своей сути — это поле для экспериментов. Да и спектр задач, которые мы ставим в Платформе этому способствует. Как пример, те же метрики Web Vitals, где у нас есть текущая позиция, есть конечный результат, который мы хотим достичь, а способы и варианты достижения порой неизвестны.

Поэтому у нас очень популярна история «эпик-драйверства». Мы позволяем члену команды возглавить работу над направлением. Мы даем полный карт-бланш: он планирует, строит дорожную карту, оценивает риски, проводит исследования, подключает коллег и доводит задачу до результата. Разработчик сам решает, как достичь цели, и мы поддерживаем его в этом.

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

5 советов, как стать самой крутой командой, от Димы Абраменко и больше о жизни сотрудников Иви — в телеграм-канале!