Интервью с техническим Директором

Чем занимаются разработчики в Content AI?

Кросс-платформенное ПО, SCRUM и создание новых продуктов для российского рынка
person-image
Интервью с техническим директором
Чем занимаются разработчики в Content AI?
В апреле 2022 г. появилась компания Content AI — новый российский разработчик технологий интеллектуальной обработки информации, который создает продукты для распознавания текста и классификации документов для крупного бизнеса.

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

— Content AI — новая компания на российском рынке, но решения, с которыми она работает, хорошо знакомы клиентам и разработчикам в России. Расскажи, что это за продукты и технологии.

— Все верно, наша команда сформирована из людей, которые работали в глобальной компании с 30-летней историей. Это мировой лидер в области разработки технологий оптического распознавания символов (OCR), компьютерного зрения и обработки естественного языка (NLP). В апреле мы вышли из международной группы и теперь самостоятельно развиваем решения специально для российского бизнеса.

О каких продуктах идет речь? Это корпоративный поисковик Intelligent Search, семейство электронных словарей Lingvo — как для десктопа, так и для смартфона. Кроме того, мы лицензируем продукты у глобальной группы, они наш официальный технологический партнер. На данный момент мы лицензируем универсальную платформу для обработки информации FlexiCapture, интеллектуальный редактор документов FineReader PDF, серверное решение для оцифровки ContentReader Server и SDK-движок FineReader Engine.

Постепенно мы будем делать собственные версии продуктов, которые сейчас продаем по лицензии. У них появится функциональность, наиболее востребованная у российских заказчиков. Так, эти решения точно будут кросс-платформенными — поддерживать и Linux, и Windows. Кроме того, мы рассматриваем возможность в дальнейшем подать заявки на регистрацию новых продуктов в реестре отечественного ПО.
—  Расскажи, чем ты занимаешься в Content AI?
— Я отвечаю за техническое и продуктовое развитие наших решений, иными словами, определяю, какие изменения и каким именно образом в них вносятся.
Мы работаем небольшой командой высококлассных специалистов, прежде всего состоящей из разработчиков и тестировщиков.
Чем сейчас занимаются разработчики Content AI?
— В данный момент мы создаем кросс-платформенные версии FineReader PDF и FlexiCapture. Именно эти решения наиболее востребованы у российского бизнеса, а для разработчиков разных групп это новый, интересный и масштабный проект.

Например, одна из наших групп с нуля создает кросс-платформенное приложение, используя C++, Qt, QML и SDK на основе самых продвинутых в мире технологий распознавания текста, генерации документов и манипуляций с PDF. В процессе мы решаем задачи выстраивания грамотной программной архитектуры, а также выбираем и реализуем такие технологии и подходы, которые позволяют нам брать высокую планку по качеству и скорости развития приложения, задаваемую конкурентами и ожидаемую нашими клиентами.

Другая группа занимается портированием сложного распределенного программного комплекса, написанного с использованием C++, C# и JavaScript на Linux с одновременным его рефакторингом и изменением функциональности.

Также не стоит забывать про команды, поддерживающие и развивающие Lingvo и Intelligent Search. К примеру, команда Lingvo в последнее время работала над тем, чтобы мобильными словарями было удобно пользоваться для разных задач перевода и изучения языков, а в Intelligent Search недавно появилась поддержка кластерной конфигурации на Linux и сейчас ведется работа по поддержке взаимодействия с новыми источниками данных.
— Как устроена структура команды разработки?

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

Структура и организация работы выстроены вокруг фреймворка SCRUM. Мы стремимся к тому, чтобы большая часть разработчиков и тестировщиков могли работать со всеми продуктами. Да, в некоторых местах это естественным образом ограничивается стеком технологий, например, у мобильных разработчиков, но для остальных в целом требуется стандартный для нас набор компетенций: С#, С++ и JavaScript.

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

Помимо всего прочего, мы как компания, которая занимается интеллектуальной обработкой документов, работаем и с машинным обучением. В дальнейшем планируем создать отдел R&D, который будет развивать это направление.
— Расскажи подробнее про стек технологий.
— Мы ориентируемся на кросс-платформенный стек. В деталях набор технологий немного меняется в зависимости от продукта. Основные технологии: C++, C#, .Net Core в бэкендах веб-станций, Qt и ReactJS для построения GUI десктоп-приложений и веб-части соответственно.

В частности, например, во FlexiCapture применяется С++ и С#, в веб-станциях используется React JS. FineReader мы пишем с нуля, используя C++ и Qt/QML для построения GUI.
Есть ли открытые вакансии в твоей команде?
Да, мы активно ищем людей. Значительная часть работ сейчас на старте, и нужно принимать много важных технических и архитектурных решений, которые будут сильно влиять на дальнейшее развитие продуктов. Поэтому мы ориентируемся в первую очередь на разработчиков уровней Senior и Middle. После того, как закончим формировать костяк, приступим к поиску и начинающих специалистов.

Нам нужны разработчики со знаниями C++, Qt/QML, разбирающиеся в C# и .Net Core. Кроме того, критично важны знания Linux и опыт написания кросс-платформенного ПО.
У тебя есть особые методы для поиска нужных специалистов?

— Мне нравится подход по найму и подбору персонала, описанный в книге «Кто» Джеффа Смарта и Рэнди Стрита. Авторы вводят понятие «Игроки класса «А», или A-Players. Под ним подразумеваются специалисты, которые благодаря комбинации своих знаний и личностных качеств наиболее хорошо подходят под те или иные задачи, и, как следствие, под ту или иную работу.

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

Вакансии в Content AI как раз описаны по принципам этой методики.
— Какие ценности у новой команды?
— Постепенно мы будем делать собственные версии продуктов, которые сейчас продаем по лицензии. У них появится функциональность, наиболее востребованная у российских заказчиков. Так, эти решения точно будут кросс-платформенными — поддерживать и Linux, и Windows. Кроме того, мы рассматриваем возможность в дальнейшем подать заявки на регистрацию новых продуктов в реестре отечественного ПО.
— По твоему мнению, чем работа в Content AI может быть интересна разработчикам?
— Во-первых, это опыт в решении сложных и амбициозных задач. Например, проектирование и реализация с нуля кросс-платформенной версии FineReader или портирование на Linux распределенной высоконагруженной платформы для интеллектуальной обработки документов.

Во-вторых, у нас можно получить и прокачать Hard skills, востребованные на современном ИТ-рынке.

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

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

Если то, о чем я рассказал, вам по душе, то присылайте свое резюме. Будем рады, если вы присоединитесь к нашей команде.
05.06.2022

Прислать резюме

Ваше резюме (pdf)