Русская версия The Next Web

Искусственный интеллект

Максим Магазинер о создании более быстрых и надежных инженерных команд

Максим Магазинер о создании более быстрых и надежных инженерных команд

Краткая суть

Максим Магазинер, ведущий разработчик программного обеспечения (Staff Software Engineer) в Taboola, утверждает, что устойчивая скорость разработки достигается за счет раннего снижения неопределенности, поддержания стабильности CI/CD и использования искусственного интеллекта как инструмента, который ускоряет поставку без ущерба для архитектуры, тестирования и сопровождаемости кода.

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

Эта задача лежит в основе деятельности Максима Магазинера. Будучи ведущим разработчиком программного обеспечения и техническим лидом в компании Taboola в Лос-Анджелесе, Магазинер посвятил более десяти лет работе в сфере рекламных технологий (ad tech), перформанс-маркетинга, рекомендательных систем, финтеха, монетизации браузерных расширений, а также мобильной и веб-разработки.

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

От любопытства к разработке программного обеспечения

Интерес Максима Магазинера к инженерии начался с любопытства к технологиям. В детстве он хотел понять, как работают системы и почему они ведут себя именно так. В конце концов разработка ПО стала для него идеальным выбором, поскольку она объединила в себе решение задач, непрерывное обучение и возможность создавать продукты, которыми могут пользоваться люди.

Он получил степень бакалавра в области программной инженерии в инженерном колледже SCE, где был удостоен награды за лучший выпускной проект кафедры программного обеспечения.

Накопление опыта в различных продуктах

До прихода в Taboola Магазинер занимал должности разработчика уровня full-stack и старшего разработчика в компаниях NGSoft, PLAYWISE и ParagonEX. Его работа охватывала адаптивные мобильные приложения для банковских клиентов, фреймворки монетизации браузерных расширений, финансовые технологии и рекламные продукты.

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

Становление техническим лидом в Taboola

В Taboola Магазинер начинал как старший разработчик программного обеспечения (Senior Software Engineer) в Израиле, а затем перешел на свою текущую должность ведущего разработчика и технического лида (Staff Software Engineer and Tech Lead). Сфера его деятельности включала ориентированные на рекламодателей системы, фронтенд-архитектуру, поставку фулстек-продуктов, координацию деплоя и технические инициативы с участием распределенных команд.

Среди продуктов, над которыми он работал — Taboola Realize и Abby, генеративный ИИ-ассистент Taboola для рекламодателей. Магазинер внес свой вклад в разработку и запуск Abby, поддерживая диалоговый интерфейс, призванный помочь рекламодателям проще создавать кампании.

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

Обеспечение устойчивой скорости разработки

Одной из постоянных проблем в карьере Магазинера был поиск баланса между скоростью поставки и долгосрочной стабильностью. Крупные проекты часто начинаются с неполных требований, меняющихся приоритетов, производственных ограничений и множества заинтересованных сторон. Его подход заключается в том, чтобы как можно раньше снизить неопределенность, определить реалистичный минимально жизнеспособный продукт (MVP) и обсудить компромиссы до того, как команды примут труднообратимые или дорогостоящие решения.

Этот подход также лежит в основе его работы над производительностью разработчиков. Магазинер уделял особое внимание стабильности CI/CD, фронтенд-тестированию, сквозному (end-to-end) тестированию, регрессионным рабочим процессам и мониторинду в продакшене. Его стек включает Grafana, Kibana, LogRocket, Prometheus, Jest, Selenium, Playwright, React.js, JavaScript, Node.js и Java.

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

Использование ИИ на протяжении всего жизненного цикла разработки

В последнее время Магазинер сосредоточился на генеративном искусственном интеллекте, ИИ-агентах, внутренних инструментах для разработчиков, рабочих процессах на базе LLM и автоматизации. Его интерес носит практический характер: сокращение объема рутинной работы, ускорение отладки, улучшение тестирования и помощь командам в переходе от идеи к продакшену с меньшими трудностями.

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

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

Руководство через раннюю коллаборацию

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

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

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

Масштабирование влияния через других инженеров

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

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

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

Взгляд на продакшн: что дальше

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

Эта задача становится все более актуальной для всех организаций, занимающихся разработкой ПО. Инструменты разработки могут ускорить отдельные этапы инженерного процесса, но надежная архитектура, эффективное тестирование, четкие петли обратной связи (feedback loops) и техническое чутье остаются незаменимыми.

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