Карьера в ABBYY: кодить или руководить Backend-разработкой?

Александр начал работать в ABBYY сразу после выпуска из университета. Несмотря на отсутствие опыта, Саша успешно решил тестовые задачи и стал Junior Developer в Backend-разработке. Спустя несколько лет он дорос до технического тимлида, а затем возглавил команду Backend-разработки продукта Vantage.

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

Расскажи о своем карьерном пути и как ты попал в ABBYY.

Так получилось, что после университета я практически сразу начал работать в ABBYY. Окончив МЭИ по общей ИТ-специальности «Вычислительные машины, комплексы, системы и сети», я пришел на собеседование в отдел, который занимался общими веб-сервисами компании, на позицию Junior Developer. На тот момент я разбирался только в Delphi, а коллеги работали с платформой .NET. Я знал, что они стилистически похожи, поэтому на собеседовании сразу сказал, что готов всему научиться, и после прохождения тестовых заданий меня взяли. Любопытно, что 13 лет назад меня собеседовал Сергей Сомков, который после смены нескольких проектов вновь стал моим руководителем.

Через несколько лет я дорос до Senior и долго оставался на этой позиции, писал код для разных сервисов. Через какое-то время я начал замечать, что организовывать взаимодействие команд, настраивать процесс работы, определять требования и договариваться с людьми мне интереснее. И когда мне предложили стать тимлидом нового проекта, я сразу согласился – очень хотелось попробовать свои силы в чем-то новом.

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

После успешного завершения проекта, в котором я в полной мере осознал свои сильные стороны (умение настраивать коммуникацию, договориться с каждым членом команды, объяснить и услышать позицию коллег), я решил, что хочу развиваться именно в направлении менеджмента. И на данный момент я занимаю позицию руководителя Backend-команды продукта Vantage.

Не пожалел о своем выборе?

Это непростой вопрос. Конечно, мне иногда хочется вернуться к кодингу, поэтому я периодически зависаю на LeetCode, а также провожу code review и слежу за трендами. Но все-таки без должной практики теряется скорость и сноровка, и наступает момент, когда ребята из твоей команды могут технически реализовать какую-то идею быстрее и лучше тебя. Поэтому мысли о том, что я бы мог так же, если бы остался техлидом, конечно, бывают. Но все же о своем выборе я не жалею, поскольку чувствую себя очень комфортно на текущем месте. К тому же, моя задача как управленца как раз и заключается в поиске специалистов, которые в своем деле будут обладать бóльшими знаниями и навыками, чем я.

В чем именно сейчас заключается твоя работа?

Мой отдел состоит из нескольких небольших команд – от 3 до 6 человек. Я отвечаю за организацию всех рабочих процессов и выстраивание эффективной работы команды: найм новых сотрудников, разработку общих правил и технических решений, за обозначение круга задач и их приоритезацию, синхронизацию с другими командами, управление проектами.

Удается уделить время каждому в команде?

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

Насколько трудно выстраивать коммуникацию с разработчиками?

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

Какие задачи ABBYY решает твоя команда?

Моя команда – Backend нового low-code/no-code продукта Vantage. Его основная идея заключается в том, чтобы легко и быстро обрабатывать любую важную бизнес-информацию. Поскольку решение обрабатывает большие потоки документов, у нас серьезные требования к его масштабированию и отказоустойчивости. Кроме того, Vantage может работать как on-premises, так и как облачный сервис.

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

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

Кроме того, в зону ответственности одной из команд входит Backend для общего User Interface (UI) продукта (список документов, подписки, роли, права и т. д.), публичный REST API для доступа к сервису, Backend для портала со статистикой обработанных документов.

Где берете идеи для реализации задач?

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

Что самое главное и сложное в вашей работе?

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

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

Как сотрудники улучшают свои навыки?

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

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

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

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

Какими навыками и компетенциями нужно обладать, чтобы попасть к тебе в команду?

В свою команду я ищу разработчиков, которые знают .NET и обладают техническим кругозором, особенно в теме создания облачных решений, поскольку мы работаем с Kubernetes, микросервисной архитектурой и современным стеком: MS SQL/ PostgreSQL, Redis, ELK, Grafana и т. д.

Как проходит отбор в команду?

Сейчас мы разрабатываем новейший продукт компании, поэтому ищем разработчиков уровня Middle и Senior, которые знают, как сделать отказоустойчивые сервисы на .NET с базами данных и очередями.

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

Есть ли открытые вакансии в твоей команде? Кого ищете сейчас в первую очередь?

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

Чем увлекаешься в свободное время?

Очень люблю активные виды спорта: волейбол (даже был тренером секции), горные лыжи, картинг, дайвинг, походы и многое другое. Также сейчас получаю второе высшее образование по бизнес-психологии в ВШЭ.

Career

Подписка на обновления в блоге

Вы будете получать статьи на почту первыми

Ваша подписка прошла успешно!

Я проинформирован о том, что я имею право в любое время полностью или частично отозвать вышеуказанное согласие. Данное согласие на обработку персональных данных может быть отозвано в любой момент. Для этого нажмите на ссылку «Отписаться» внутри любого письма, полученного от ABBYY, или заполнив форму Права доступа ABBYY к персональным данным.

Я даю согласие на использование моих персональных данных для целей, описанных в правовой политике.

Ваша подписка прошла успешно!

Читайте нас