Ирландская компания с минской разработкой Profitero помогает брендам продавать онлайн: собирает информацию у ретейлеров, анализирует и выдаёт в понятном виде. Основатели рассказывают, как помогает принцип Кремниевой долины «Sell first, build later», где искать первых клиентов, и о чём общаться с инвесторами.
— Нашим первым офисом была комната в 18 «квадратов», — говорит Константин Черныш, один из трёх основателей и CIO компании. — Это четвёртый офис за несколько лет, переехали сюда в 2014, когда закрыли инвестиционный раунд A. Начали с одного помещения, а теперь разрослись до двух этажей и почти 1400 квадратных метров.
«Инвесторы вкладывают не в точки, а в кривые»
Дмитрий Высоцкий, CTO Profitero: Всё началось в 2009 году. В то время я работал в IBM в Дублине. Разрабатывал поиск для Lotus Connections: используя алгоритмы обработки естественных языков, мы собирали данные из разных источников и делали поиск по этой агрегации.
Владимир Пигрух, CEO Profitero: Я тоже жил в Дублине, и мы с Димой хорошо знали друг друга. Работал в Google, а туда перешёл из Microsoft. Занимался коммерческими операциями — продажами AdWords на Украину.
Константин Черныш, CIO Profitero: А я жил в Минске и занимался торговлей через собственный сайт. В какой-то момент пришло осознание: если хочешь продавать товары лучше, чем твои конкуренты, нужно выставлять цену ниже, чем у них, или хотя бы такую же. В Беларуси это особенно актуально: здесь человек часто готов потратить час своего времени, который стоит $15, чтобы купить вещь на $3 дешевле.
Я сразу понял: отслеживать цены вручную — нереально, это требует слишком много времени. Решил написать скрипты, автоматически сравнивать цены на разных сайтах, проверять, везде ли товар есть в наличии, и за счёт этого решать, есть ли смысл менять свои цены. Потом пришло понимание, что эти скрипты можно кому-то продать.
Владимир: Очень важно, что идея зародилась из проблемы реального онлайн-продавца, Кости. Мы обсудили идею и решили, что для начала нужно узнать, есть ли такая проблема у кого-то ещё и можно ли на её решении построить бизнес.
Дмитрий: Сделали одностраничный веб-сайт, повесили туда минутное видео, объясняющее суть нашего сервиса, и форму подписки. Стали собирать на этот сайт людей через свой нетворк в LinkedIn: «Посмотрите, чем мы занимаемся». И за две недели получили через форму подписки 180 контактов: имена, телефоны, компании, должности.
При этом самого сервиса у вас ещё не было?
Дмитрий: Именно! И это очень важный момент: прежде чем писать код, мы создали инструмент, который позволил быстро протестировать необходимость в продукте. «Sell first, build later».
Мы стали обзванивать людей, которые оставляли нам контакты через сайт, и организовывать с ними встречи. Летали с Володей в Лондон каждую неделю, приходили к нашим потенциальным клиентам — большим ритейлерам. Питчили им идею, слушали фидбек: «Да, вы делаете полезный продукт, но нам нужно кое-что ещё». Так сформировалось понимание, какие болевые точки есть у наших возможных клиентов и в чём мы можем быть им полезны.
Константин: А потом один из людей, к которым мы обращались за советами, сказал: «Вы готовы для Seedcamp, идите туда». Мы даже не знали о существовании Seedcamp, но идея нам понравилась. И сложилось с ней очень удачно: мы стали одним из победителей. За 2010 год в Seedcamp подавалось около 900 компаний, мы стали одним из 24 финалистов, и вошли в число 12 команд, получивших инвестиции.
Дмитрий: Так у нас появились первые инвесторы: сам Seedcamp и ещё один инвестор-ангел. Выделенные ими деньги позволили нам троим полностью сфокусироваться на Profitero, приводить первых клиентов.
И разрабатывать первую версию продукта?
Дмитрий: Да. Костя вернулся в Минск, писал «версию 0» сервиса: разрабатывал кроулер и фронтенд. Я интегрировал в продукт обработку естественных языков, делал поиск и матчинг — мы с самого начала делали большой упор на искусственный интеллект и машинное обучение. А ещё мы с Володей вели коммерческую часть проекта: продолжали ездить по потенциальным клиентам, пытались подробнее узнать об их проблемах. В основном мы встречались с большими ритейлерами — например, Tesco и Marks & Spencer.
Константин: Стоит сказать, что сначала мы задумывали простую аналитику конкурентных предложений: «хочу знать, по какой цене мои конкуренты продают такие же товары». Этот продукт был ориентирован именно на ритейлеров. Но вскоре мы поняли, что больше пользы можем принести не продавцам, а производителям.
Дмитрий: Мы тестировали всё, каждую гипотезу. Даже ценообразование проверяли на практике: первому клиенту выставили ценник 50 английских фунтов в месяц, следующему — 200 евро. Попробовали 800 — приняли. Попробовали 1500 — возникли сложности. Так и искали золотую середину.
Ещё мы составили список инвесторов, которые нам подходили по направлениям их прошлых вложений: SaaS, big data, e-commerce. Мы знакомились с ними, потом связывались каждый месяц и давали обновления по нашему прогрессу. А они давали нам советы из своего опыта, и мы принимали этот фидбек и работали по нему. Часто за месяц мы успевали делать в разы больше, чем инвесторы от нас ожидали.
Владимир: В июле 2011 мы взяли раунд инвестиций от Delta Enterprise Ireland — миллион долларов. А весной 2014 закрыли большой раунд A — $8 млн. Инвестором стала Polaris Partners — одна из крупнейших венчурных инвестиционных компаний в мире. Говорят: «Приди к инвестору за деньгами — он тебе даст совет, приди за советом — и он тебе даст деньги». Для нас этот принцип сработал. До того, как вложиться, инвестор общался с нами два года: мы встречались раз в несколько месяцев, присылали обновления. В итоге инвестор пришёл к нам сам — и предложил хорошие условия.
Дмитрий: Важно понимать, что инвесторы вкладывают не в точки, а в кривые. Мы понимали, что сразу нам денег никто не даст: нужно выстроить отношения, продемонстрировать профессиональную этику, показать постоянный прогресс. Мы учились на лучших практиках Кремниевой долины: читали Стива Бланка, Эрика Риса, блоги Фреда Уилсона и Марка Састера. Да, мы работали не в Долине, а в Дублине и Минске, поэтому мы перерабатывали эти практики. Но два ключевых принципа — «сначала продавай, потом делай» и «приди за советом — получишь деньги» — сработали у нас очень хорошо.
Исторические данные + взгляд в будущее
Что делает продукт Profitero, и как он работает?
Владимир: Наш продукт помогает брендам больше продавать онлайн. Мы предоставляем клиентам данные, которые помогают им продавать быстрее, чем конкуренты, наращивать продажи.
Дмитрий: Работа идёт в три этапа. Первый — сбор данных. Мы в реальном времени собираем информацию из онлайн-магазинов: какие продукты наших клиентов там продаются, по какой цене, какой контент на страницах товаров, есть ли промоушены, что с рейтингами и отзывами. Кроме того, мы ранжируем результаты поисковой выдачи по ключевым словам. Например, если наш клиент продаёт шампунь, мы собираем информацию о том, какие результаты выдаёт поиск по слову «шампунь» и в каком порядке.
Каждый день мы собираем информацию с более чем полумиллиарда страниц продуктов. Это около 8 тысяч сайтов, причём некоторые из них в разных геолокациях содержат разный контент, и тогда данные с каждой локации кроулятся отдельно. Для Amazon у нас есть отдельный дополнительный продукт, который оценивает продажи наших клиентов и их конкурентов.
Константин: Эту часть мы изначально писали без каких-то сверхсложных технологий. Всё, что у нас было на старте — быстрый и надёжный кроулер, написанный на C, и приложение для пользователей, выстроенное на Ruby. Эти простые вещи и сейчас остаются основой продукта, но в целом с первых версий многое изменилось. Клиентская база быстро разрастается, поток данных растёт вместе с ней, поэтому мы в постоянном поиске новых решений.
Нашей первой базой данных была простая и проверенная временем MySQL, но позже мы внедрили Cassandra — это облегчило масштабирование и повысило отказоустойчивость. База с собранными данными занимает несколько терабайт, для неё мы выделили специальные железные мощности. Но собрать данные — это только малая часть. Второй этап работы — обработать данные, нормализовать их и проанализировать.
Дмитрий: Для этих задач мы используем собственные разработки в обработке естественных языков и машинном обучении. Из текста со страницы мы распознаём бренд продукта, его характеристики — тип, вес/объём, цвет, размер, модель. Всё это происходит автоматически, ручной труд минимизирован.
На выходе мы получаем два больших набора данных. Первый — «цифровая витрина», которая максимально полно описывает состояние страниц продуктов в онлайн-магазинах, второй — продажи продуктов. Объединяя эти данные, мы видим, какие факторы влияют на продажи, и что можно изменить, чтобы их увеличить.
У нас есть два направления аналитики. Первое — корреляционное: мы смотрим на исторические данные и видим, что влияло на продажи. Второе — предсказательное, causal analysis. Это «взгляд в будущее», поиск новых возможностей, «зазоров» на рынке. Мы показываем клиенту, как изменить конфигурацию продукта или сменить стратегию, чтобы занять такой «зазор» и продавать больше. Первое направление даёт ответ на вопрос «что происходит и почему», второе — «как мы можем выйти вперёд».
Константин: Дальше идёт третий этап: мы передаём собранные данные в клиентское приложение. Клиент видит уже нормализированные данные, он может фильтровать и «нарезать» их, строить автоматические отчёты.
Раньше данные в клиентском приложении запрашивались напрямую из «сырых», но со временем мы поняли, что без агрегаций не обойтись. Стали периодически делать снимки данных, чтобы выделять из общей базы на несколько терабайт небольшие эффективные кусочки. Мы собираем их специально под клиентов, чтобы максимально упростить их работу. Web-интерфейсы тоже при необходимости переписываем на актуальных технологиях: начинали с JQuery, вскоре перешли на Dojo (который, к сожалению, сейчас не столь популярен), сейчас переходим на AngularJS.
Фокус — глобальные компании
Как Profitero превратилась в крупную компанию?
Константин: Первый человек присоединился к нам осенью 2011 года, к весне 2012 нас было уже семеро. В тот момент было очень сложно набирать людей. Что мы могли предложить хорошему программисту? Мы были просто группой ребят, пускай и засветившихся на Seedcamp. Так что людей мы искали через собственные контакты, среди знакомых. Мы продавали им идею: «Смотрите, есть потенциал сделать классный продукт с обработкой огромного количества данных». Уже потом, когда мы закрыли инвестиционный раунд A, расширяться стало значительно проще.
Владимир: Рынок, на котором мы работаем, очень перспективный, он быстро растёт. Офлайн-продажи с каждым годом идут вниз, закрываются магазины, а e-commerce, наоборот, постоянно идёт вверх — минимум на 20% в год. Если лет шесть назад нам надо было убеждать клиентов инвестировать в e-commerce деньги и ресурсы, то сейчас онлайн-торговля априори имеет высокий приоритет для большинства производителей.
Но e-commerce — очень конкурентный рынок, и те производители, которые работают с нами, получают преимущества по сравнению с другими компаниями. Поэтому и спрос на продукты Profitero высокий, и мы быстро развиваемся на этой волне.
Константин: Сейчас в компании около 230 человек. Мы не растём на 100% в год, но периодически нам нужно набирать людей, чтобы поддерживать развитие продукта и справляться с ростом базы клиентов. В Минске — 170 человек. Здесь идёт вся разработка, здесь же располагается delivery-команда, которая занимается работой с клиентами: настраивает аккаунты, предоставляет сервисы. Эти два отдела — самые большие в нашей структуре. Все остальные офисы занимаются аналитикой, продажами и маркетингом: 30 человек в Бостоне, 25 — в Лондоне, ещё 3 — в Шанхае, там мы в прошлом году открыли офис для продаж в Азии.
Много ли у вас конкурентов?
Владимир: Они есть, и с несколькими из них мы часто сталкиваемся лоб в лоб. Однако, несмотря на то, что рынок очень большой, конкурентов всего несколько. Мы видим несколько возможных причин.
Первая — в том, что важно не просто собирать большой объём данных, но и предоставлять их клиентам в максимально удобной форме. Это одна из самых сложных вещей — показать всю огромную базу информации в простом интерфейсе, который будет понятен бренд-менеджеру даже без технического опыта.
Дмитрий: Многие думают, что можно быстренько закроулить информацию с онлайн-магазинов, оформить её в какое-то приложение и продать. На самом деле кроулер — это ещё не бизнес. Это просто инструмент, который даёт нам данные. А мы эти данные превращаем в ценности для клиентов. Новые компании на рынке появляются постоянно, но опыт показывает, что зачастую они либо очень быстро умирают, либо остаются в одной стране.
Владимир: Локальность работы конкурентов — это вторая причина. Наш фокус — глобальные компании, большие производители. Им нужен провайдер, который может предоставить аналитику e-commerce-рынков разных стран.
Дело в том, что в каждой стране есть своя специфика онлайн-торговли. В Штатах, например, есть Amazon Prime day и Cyber Monday — продажи в эти дни очень сильно влияют на годовые итоги. В Китае Amazon не очень популярен, зато там есть Tmall и JD, они очень быстро развиваются, у них очень большая база клиентов. А главное событие года в китайском ecommerce — 11.11, «Singles’ Day». Во Франции очень популярны покупки «click and collect»: заказываешь товар онлайн, а забираешь из магазина. Из-за этого ассортимент и цены на сайтах зависят от геолокации.
Клиентам нужно, чтобы мы учитывали специфику стран при сборе данных, но при этом отображали результаты в едином формате. Мы собираем данные в любой стране, в любом формате, на любом языке — и для глобальных компаний это очень важный плюс.
Приведу пару примеров. Beiersdorf, владелец бренда Nivea, полтора года назад начал работать с нами в одной стране, а сейчас мы работаем с ними более чем в 10 странах по всему миру. С Adidas мы подписали первый контракт на две страны всего около шести месяцев назад, сейчас контракт вырос уже до 6 стран. Это клиенты, которые видят выгоду от нашего решения с первого дня, как только начинают получать нашу аналитику.
Дмитрий: Ещё одна причина нашего успеха в том, что мы очень много вкладывали и вкладываем в R&D. Из всех конкурентов на рынке Profitero — компания с наибольшим количеством инженеров, и наши инженеры — наш большой приоритет. Мы создаём инновации раньше конкурентов, движемся вперёд быстрее. Например, мы начали связывать данные «цифровой витрины» с данными продаж — искать корреляции, строить аналитику — два года назад. Наши конкуренты начинают это делать только сейчас. Скорость инноваций очень важна. Глобальные клиенты ищут партнёров, способных быстро адаптироваться к изменениям на рынке.
Константин: Мы можем решать очень специфические задачи. Например, для одного из клиентов мы в реальном времени собирали информацию о том, как менялись цены на товары во время флеш-распродажи в Китае. Мы выигрывали клиентов даже в ситуациях, когда наши конкуренты просто не смогли собрать данные — например, из мобильных приложений.
«Периодически слышим рассказы о том, что попасть в Profitero очень сложно».
Как строится команда Profitero?
Константин: Мы стараемся по всем направлениям собирать сильных профессионалов — и разработчиков, и delivery-менеджеров, и маркетологов, и проектных менеджеров.
Дмитрий: Мы стараемся нанимать тех, кто лучше нас разбирается в своих областях. Мы не ставим рамки. Наоборот, мотивируем углубиться в проблему и искать нестандартные решения. Например, мы никак не ограничиваем R&D-команду в выборе технологий. Они пользуются Python, Java, Ruby, различными библиотеками, базами данных (ClickHouse, например) — всем, что нам может помочь. Главное — решить задачу. У нас работают ребята очень высокого уровня: кто-то выигрывал International Mathematics Competition, многие защитили PhD (в Минске, в МГУ, во Франции), а совсем недавно наш Data Scientist Евгений Бабахин вместе с японским студентом Хиротоши Китамура выиграл $50 тысяч в соревнованиях на Kaggle.
Одна из главных задач R&D — минимизировать ручной труд в компании. Один из недавних кейсов, например, — алгоритм определения бренда. На разных сайтах один и тот же бренд может быть написан по-разному: например, где-то «Black and Decker», где-то «B&D», в третьем месте — «Black and D.». Нам нужно было нормализировать все эти написания в одно значение, чтобы использовать в клиентских отчётах и фильтрах.
Мы внедрили обработку естественных языков, попробовали разные классификационные алгоритмы и остановились на нейросети. Сначала обучали её на сырых данных, потом — на данных, полученных из работы алгоритмов NLP. Такой гибридный подход дал нам 98% качества, то есть позволил максимально автоматизировать этот процесс. Естественно, к клиентам приходят на 100% проверенные данные: доведением 98% до максимума занимается специальная команда матчинг-администраторов.
Константин: Но наше стремление собрать действительно сильную команду сталкивается с определенными вызовами: некоторые разработчики приходят к нам на собеседование и заявляют, что они сеньоры, а по нашей градации едва дотягивают до мидлов. Мы периодически слышим и от рекрутёров, и от кандидатов рассказы о том, что попасть в Profitero очень сложно.
Владимир: Возможно, некоторые кандидаты даже пугаются таких разговоров и не идут к нам на собеседования. Но бывает и наоборот. Сильные кандидаты воспринимают это как вызов: «Неужели так сложно, что я не пройду?».
Константин: Мы понимаем, что построить хорошую команду — большой труд. Поэтому создаем в Profitero культуру innovation&execution, где каждый член команды получает свободу раскрыть свой творческий потенциал и несет при этом ответственность за результат перед командой и клиентом.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.