От вёрстки таблицами до платежей Badoo
Ведущий представляет гостя как человека, выступавшего едва ли не на всех российских конференциях, — Анатолий поправляет, что до мобильных дело пока не дошло. Разговор начинается с детства: он родился и вырос в Москве в семье двух инженеров, а обещанный компьютер пришлось ждать лишние два-три года из-за кризиса девяносто восьмого. Мотивация была типовой — хотелось делать компьютерные игры, — но в геймдеве он так и не поработал и первую игру собрал только этим летом вместе с сыном в Cursor. Учиться программированию он пошёл в университет стали и сплавов, где из программирования нашёлся один бейсик на первых курсах, а дипломом стал бизнес-план трубопрокатного завода. На втором-третьем курсе стало ясно, что учат не тому, и он устроился по вечерам в веб-студию верстать сайты таблицами; современные строчки и колонки, замечает он, подозрительно на них похожи. Студия закрылась, PHP он выучил сам по книжке — курсов тогда не было — и пришёл в компанию, продававшую мелодии и картинки через короткие номера.
Любимый проект тех лет — собственная маленькая соцсеть с форумом и чатом, популярная у владельцев мобильных телефонов: чтобы увидеть новое сообщение, страницу надо было обновлять руками. Александр вспоминает, что его тогдашняя компания сделала сразу две соцсети, и та, что собирала ленту джойнами по реляционной базе, сложилась, как только пришли живые пользователи. Потом были классифайд недвижимости, один из первых снимавший 3D-панорамы дворов, и хостинг с админками для облачных провайдеров — примерно по году-полтора в каждом, по его прикидке. В Badoo Анатолия привели рекомендации знакомых: собеседование, по его оценке, прошло на пятьдесят на пятьдесят. Пять лет он проработал в одной команде — биллинг и интеграции платёжных провайдеров — и вырос от джуниора до синьора без системы грейдов: карьерные линейки и performance review принёс технический директор, пришедший из Google под конец этих лет.
Хаб Lazada и переезд на Go
Последние года два Анатолий был техлидом в связке, где его руководитель отвечал за проекты и людей, а он — за инженерию; из крупных проектов он вспоминает отдельную инфраструктуру для приёма карт под PCI DSS, которой занимался ещё как синьор-инженер: код с нуля, безопасный контур вместе с админами и самодельная доставка на bash, раскидывавшая архив по машинам; Александр, готовясь к интервью, нашёл запись доклада про эту платёжку. Уходил Анатолий без конфликта: хотелось расти как руководителю, а руководящие позиции вокруг были заняты. На рынке в этот момент появилась Lazada — азиатский e-commerce, который на зарубежном финансировании считал зарплаты в долларах, и после очередного скачка курса это выглядело особенно привлекательно; дело было, по словам гостя, примерно в 2014 году. Сомневался он долго, решиться помогла жена: как бы плохо ни было, переживём вместе. Александр разбирает эту развилку отдельно — привыкший считать варианты мозг строит дерево решений с матожиданиями и приходит к выводу, что игра не стоит свеч.
Московский хаб открывали под конкретную боль: у компании были русские CTO и VP инженерии, вьетнамский хаб упирался в нехватку сильных инженеров, а сезонные распродажи давали пиковый хайлоад, которого не выдерживало PHP-приложение. На собеседовании в хабе было человек двадцать, план — сотня к концу года; за девять месяцев команда выросла в пять раз. Делать пришлось всё сразу: нанимать, выстраивать процессы и строить с нуля инфраструктуру для разработки на Go. Сам Go оказался и приманкой для найма — люди шли, устав от PHP, C# и .NET, — и проблемой: на новом языке писали по привычкам старого, это осознали примерно через год и заложили рефакторинг. Тогда же вышли Docker и Kubernetes, которые подхватывали прямо из релизов, а телеметрию писали сами: Prometheus ещё не появился. Жёсткие процессы понадобились в последнюю очередь — с рынка приходило много сильных инженеров, и команды организовывались почти сами.
Вертикали Avito и продажа изменений
Перестройку на ходу оба сравнивают с ремонтом самолёта в воздухе. Позже Alibaba купила Lazada, московский хаб закрыли, разработку перевели в Азию, и Анатолий ушёл в Avito раньше остальных, отказавшись от проектного бонуса; коллегам месяца через два предложил переехать к себе Ozon. В Avito его звали на очередную попытку развивать вертикали — нишевые сегменты вроде недвижимости, авто, услуг и работы; логика та же, что у стратегии второго игрока: откусывать у универсального лидера сегмент за сегментом. Досталось немного: команда быстрого реагирования, команда Автотеки с историей автомобиля по VIN и Домофонд, классифайд недвижимости из первой федеральной тройки-четвёрки. В отличие от Lazada фокус был организационный — нарастить число команд и понять, как вертикали стыкуются с горизонтальными командами, которые улучшают поиск и фильтры сразу для всех.
Александр вспоминает закон Конвея; Анатолий отвечает, что первые годы спасал монолит, в котором всё нужное правилось в одном репозитории, а сложнее стало с приходом микросервисов. Первым камешком изменений стала инфомодель — база с деревом категорий и атрибутов объявления: без объёма двигателя или площади квартиры вертикальный опыт не построить, а новый атрибут добавлялся год при потребности в десятке. Гибкую схему придумали ребята из DWH, интеграцию в ключевые сервисы вёл Анатолий. Рядом стоял пример, где каталог из ста тысяч вариаций автомобилей просто не дал стартовать PHP-процессу. Сначала изменения продавали голосом и презентациями, ADR и one-pager появились позже, а одним из ключевых рычагов, по его ощущению, были топ-менеджеры вертикалей, с которыми он выходил единым фронтом. Александр добавляет свой случай: веб-кабинет, в который бизнес не видел смысла вкладываться, но заранее сделанный архитектурный проект очень пригодился, когда контекст изменился. Анатолий отвечает, что партнёрское доверие с бизнес- и продуктовым лидером как раз и позволяет принимать такие решения автономно и вкладываться в них, когда заказа ещё нет.
Что стоит унести с собой
- 01Из обжитой компании выталкивал потолок, а притягивала связка роли и денег: в Badoo все руководящие позиции вокруг были заняты, а Lazada предлагала позицию лида лидов и зарплату, посчитанную в долларах: после скачка курса та же сумма давала в России вдвое больше денег, чем годом раньше.
- 02Новый язык — сильная приманка при найме, но люди приносят привычки прежнего стека: Go, написанный как PHP, в Lazada осознали через год и лечили плановым рефакторингом.
- 03В большой компании узкое место чаще организационное: монолит Avito первые годы помогал вертикалям доставлять изменения, и только микросервисы усложнили кросс-командную работу.
- 04Техническое изменение продаётся вместе с бизнес-тягой и союзниками: топ-менеджеры вертикалей входили в совет топ-менеджмента Avito, и с ними Анатолий выходил единым фронтом.