Из брянского посёлка в бигтех
Евгений ведёт платформенный продукт «Статист»: сбор и анализ данных для продуктовой аналитики, онлайн-эксперименты и поиск инсайтов в реальном времени, где пользователь получает ответы через UI без SQL. Его непосредственный руководитель — Андрей Цыбин, CTO отдела, уже рассказывавший про «Статист» в одном из ранних выпусков; когда-то они были тимлидами двух отделов в компании до Т-Банка. Дальше шаг назад: посёлок городского типа Красная Гора в Брянской области на границе с Беларусью, около пяти тысяч жителей, обычная школа номер один и информатика раз в неделю. Basic и Pascal не впечатлили, но преподаватели заметили, что получается, и советовали перешагнуть порог отторжения. Вуз — Брянский государственный технический университет, специальность «математическое обеспечение и администрирование информационных систем»; на первой паре по матанализу профессор спросил: «Ну что, новая элита вуза подъехала?»
Первым языком был C — с malloc и realloc, фрагментацией памяти и настоящими хэш-таблицами; Евгений считает, что именно эта боль сделала любой следующий язык проще. Второй курс — C++, третий — C#: за семестр от консольного приложения до связки десктопа и веба с общей библиотекой классов, кодогенерируемыми контрактами и базой в SQL Server, после которой однокурсники шли работать в брянские компании. Когда он это рассказывает, ему говорят: «Это невозможно, где ты учился, что это за Хогвартс?» — а он отвечает, что в Брянске, и ему не верят. Сисадмином, кем он собирался стать по описаниям из поиска, он не стал: про DevOps поисковик тогда ещё не подсказывал. Java он выучил сам по «Философии Java» Брюса Эккеля за пару выходных, опираясь на C#, а Ruby on Rails в 2015-м дал ему вкус к разработке: красивый сайт за вечер.
Фундамент, ассистенты и любопытство
Тестовое задание на первую работу — клон доски объявлений на Rails с арендой и блокировками в базе, чтобы одну вещь не арендовали двое, — он сделал за вечер и задеплоил одной командой, без Terraform и Kubernetes. Дальше был аутсорс, неделя на C#, месяцы собеседований с подробной обратной связью от интервьюеров и позиция первого рубиста в брянской компании. К началу двадцатых рынок Ruby в России сжался, а на асинхронном бэкенде компании по продаже авиабилетов Евгений разбирался с событийным движком, написанным под капотом на C++, вплоть до сегфолтов. На собеседованиях он отвечал правильно, но получал отказ из-за отсутствия языка в резюме — «каменная стена», и потому пошёл в бигтех, где ищут инженера, а не Python-разработчика. В Т-Банке в 2021 году ему согласовали софтверно-инженерную секцию вместо языковой; system design тогда был слабой зоной, и собеседование у Игоря Маслова он до сих пор помнит как сложное.
Александр приносит в разговор новость про американский рынок труда, источник которой сам называет неуверенно: там разделяют программистов, которые только пишут код, и software developers, отвечающих ещё за требования, тесты, инфраструктуру и эксплуатацию, — и за пять лет вакансии первых просели на десятки процентов, а вторых остались стабильны. Отсюда спор про фундамент: по словам Евгения, физик выучит программирование, а программист в физику уже не войдёт. Александр возражает частично — на базовой кафедре он видел климатическую модель на Фортране с трёхбуквенными переменными и без описаний, так что инженерное образование он принижать не стал бы. Вторая линия — ассистенты: сын Александра учит «заклинания» для Unity и говорит «когда нужно, разберусь», а без базы обвязка вокруг кода остаётся шумом, а не контекстом. Формула Евгения: скользить по волнам можно, если помнить, что это лишь часть ландшафта.
«Статист»: от гигабайта до петабайта
Первым продуктом Евгения в Т-Банке был трекинг клиентского перформанса — как быстро открываются экраны в вебе и мобильных приложениях и как метрики меняются от релиза к релизу. Внутри понравилось настолько, что команде предложили сделать поверх этого настоящую продуктовую аналитику: не таймсерии, а аналитическое хранилище, и выбрали ClickHouse. Конкурировать пришлось с Amplitude, Яндекс.Метрикой и ещё одним внешним трекером — Евгений читал их инженерные блоги, чтобы понять, как это вообще делается. Драйвером, по словам Александра, была цена: событий становилось больше, квота упиралась в потолок, включалось агрессивное семплирование, и поддержка переставала видеть путь пользователя по экранам. Евгений уточняет, что квота считается не только по событиям, но и по уникальным атрибутам: кардинальность атрибутивки — предел любой аналитической системы, и законы физики здесь для всех одинаковы.
Прототип собирали втроём-вчетвером — Евгений, Андрей Цыбин, мобильный разработчик на SDK и фронтендер на UI; внешнюю аналитику заместили ближе к концу 2022 — началу 2023, мигрируя постепенно. С гигабайта в ClickHouse выросли до сотен терабайт, а с репликами перевалили за петабайт, храня больше при меньших деньгах. В сентябре 2023 Евгений вернулся уже тимлидом: мотивация была в возможности влиять решениями и экспертизой, а не кодом, а амбиция, по его словам, была в том, чтобы показать свои знания и то, как нужно делать правильно; Александр называет такую роль играющим тренером. За первые три месяца команда нашла и внедрила много оптимизаций и весь 2024 год прожила без сбоев, пропав из внутренней летописи сбоев. Впереди — выход «Статиста» на внешний рынок и мультитенантность: продавать, масштабировать и считать расходы по организациям без неё нельзя, а перестроить монолит под неё — как перейти от дачи к панельному дому. Напоследок Евгений советует недооценённую и непереведённую книгу Web Scalability for Startup Engineers и погружение в Cloud Native как концепцию, которая даёт независимость от вендоров.
Что стоит унести с собой
- 01Фундамент набирают вовремя: физик выучит программирование, а программист в физику уже не войдёт, и с возрастом времени на базу не останется — потому её и проверяют в бигтехе, где никто не знает, когда случатся те пять процентов задач, где она решает.
- 02Скользить по волнам с ассистентом допустимо, если помнить, что это лишь часть ландшафта: ценность смещается от заучивания синтаксиса к критическому мышлению и умению сравнивать предложенные альтернативы.
- 03На масштабе алгоритмы — это деньги: Евгений вспоминает, как удаление трёх строк сняло сразу 100 CPU из 200, а на миллиардах событий выигранная миллисекунда экономит железо и диск.
- 04Тимлид команды из десяти человек — уже за пределами привычных семи плюс-минус двух — берёт только некритичный код, потому что сам становится риском для сроков, зато полностью владеет техническим бэклогом, который в платформенном продукте больше некому придумывать.