• Опыт разработки и внедрения систем данных в data-driven компаниях

      Привет, Хабр! Меня зовут Ксюша Блажевич, я руководитель направления data science и product-owner в Леруа Мерлен. 13 апреля в 19:00 МСК мы совместно с Yandex.Cloud организуем митап о платформах данных, на котором обсудим c Авито и Райффайзенбанком методы и инструменты скоринга входных данных, их агрегации и создании единой системы. 

      Под катом расписание митапа и анонсы докладов: о релизе нового функционала Yandex Object Storage, методах ускорения time to market до 1 дня, применении lightGBM при приемке товара на складах и оптимизации размещения банкоматов с помощью JupyterHub. 

      Подробнее о докладах и таймлайн
    • Рекомендательный движок за 2 строчки кода

        Эта статья про то, как можно сделать рекомендации на сайт, если один из ключевых критериев — скорость. Нужно это, например, тогда, когда существующая система к набору молотков рекомендует заготовку для выпиливания лобзиком (как это было у нас) или когда её вообще нет.

        Алгоритм можно описать всего в одном предложении: берём историю продаж и обучаем на ней гугловый Word2Veс, фильтруем результат.

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

        Читать далее
        • +23
        • 3,7k
        • 7
      • Эволюция оркестратора микросервисов. Как переход на WebClient помог пережить пандемию

          Хочу рассказать о том, как мы оптимизировали наш оркестратор микросервисов.

          Потому что в случае с такого рода сервисами наш любимый подход "пихаем в базу - строим индексы" не работает. Как минимум потому что базы нет).

          В статье расскажу про общие подходы к оптимизации оркестраторов, что и как мы пробовали, как переходили с блокирующего RestTemplate на неблокирующий WebClient.
          Как пытались подружить его с CompletableFuture, как положили прод, как нашли проблему, и какие сделали из всего этого выводы.

          Забегая вперёд, могу сказать, что переход на неблокирующий веб-клиент для нашего оркестратора, в разы увеличил производительность, а ещё, если думаете использовать WebClient совместно с CompletableFuture, то лучше не надо имеет смысл кое-что проверить.

          Читать далее
        • Как попадает товар в магазины «Леруа Мерлен» с точки зрения математики заказа

            image
            Ячейка пикинга на первом этаже стеллажа

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

            Ночью каждый магазин считает прогноз по заказам на следующий период. Точнее, каждую неделю просчитывается прогноз на один год вперёд, а из него каждую ночь рассчитываются заказы для управляющего магазина. Скрипт видит, что кто-то купил смеситель, и если продажи пойдут такими темпами (тут целый блок сложной модели, что считать «такими темпами» и на каком периоде), то смесители закончатся через семь дней. Это значит, что нужно сформировать следующий заказ, чтобы их привезли.

            Большая часть товаров едет в магазины либо по потоку кросс-докинга (склад перебрасывает паллеты, не открывая и не сохраняя их у себя на стоке), либо напрямую от местных поставщиков. Частично мы эти процессы уже разбирали в прошлом посте. Рассмотрим сложный случай, когда магазину смесители нужны из паллеты, которая лежит на складе в Москве.

            Сложность в том, что паллета — это довольно много смесителей. А в магазин нужно привезти 50 штук, скажем. Не везти же её целиком? И вот появляется процесс пикинга, когда паллета снимается с ячейки, кладётся вниз, а потом из неё достаётся вложенная тара. Это может быть транспортный короб, иннер и штука. Штуками распределительный центр почти никогда не оперирует, за исключением редкого и дорогого оборудования. Для единиц нужны фулфилмент-центры, но это уже немного другая часть логистики, и в этом посте про них не будет.
            Читать дальше →
          • Управляем технологиями в компании без тех. радара

              В цикле развития любой быстрорастущей компании наступает момент, когда CIO, CTO, главный технический архитектор (нужное подчеркнуть) задумывается о том, что компания доросла до уровня осознанного управлении технологиями, и нужно начинать двигаться в эту сторону. Первое, что приходит в голову, — визуализировать технологии, с которыми каждый день работают сотрудники. Кажется, этого достаточно. Но решает ли это проблему управления технологиями? Давайте разбираться — и добро пожаловать под кат.


              Читать дальше →
              • +17
              • 2,3k
              • 3
            • Опыт использования фреймворка Featuretools

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

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

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


              Моднейший пайплайн
              Читать дальше →
            • Как мы ускоряли время разгрузки товара на складе

                image
                Терминал сбора данных Zebra WT-40 со сканером-кольцом. Нужен для того, чтобы была возможность быстро сканировать товар, при этом укладывать физически короба на паллету (свободные руки).

                На протяжении нескольких лет мы очень быстро открывали магазины и росли. Закончилось это тем, что сейчас наши склады принимают и отправляют порядка 20 тысяч паллет в день. Естественно, сегодня у нас уже больше складов: два больших в Москве — 100 и 140 тысяч квадратных метров, но есть и небольшие в других городах.

                Каждая сэкономленная секунда в процессах приёмки, сборки или отправки товара в таких масштабах — это возможность сберечь время на операции. А ещё это огромная экономия.

                Именно поэтому два главных множителя эффективности — это продуманный алгоритм действий (процесс) и настроенные ИТ-системы. Желательно «как часы», но «работающие чуть менее, чем идеально» тоже вполне подойдёт. Всё же мы в реальном мире.

                История началась шесть лет назад, когда мы присмотрелись к тому, как именно поставщики разгружают фуры у нас на складе. Это было настолько нелогично, но привычно, что сотрудники даже не замечали неоптимальности процесса. Более того, в тот момент у нас не было промышленной системы управления складом, и в основном логистические операции мы доверяли 3PL-операторам, которые использовали свой софт и опыт в построении процессов.
                Читать дальше →
              • Лучшие data-продукты рождаются в полях

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


                  Читать дальше →
                • Некоторые особенности HR-политики в ИТ-ориентированной рознице

                    Привет! Меня зовут Катя, я занимаюсь автоматизацией HR-процессов «Леруа Мерлен» в России. Сразу скажу: сама я не пишу код, но участвую в каждом проекте. Хочу рассказать про некоторые особенности того, как это у нас устроено.

                    Самый частый вопрос ко мне от новых разработчиков: правда ли, что надо работать в магазине до того, как стать разработчиком «Леруа»? Правда, вне зависимости от того, с чем будет связана ваша работа. Типовое обучение любого сотрудника подразумевает интеграцию в магазине, то есть погружение в процессы розницы. Чем выше должность, тем больше времени на разных линейных должностях придётся проработать. Например, наш руководитель разработки четыре месяца провёл в двух магазинах, работая продавцом, участвуя в инвентаризациях и так далее.

                    Второй вопрос: правда ли, что мы выдаём телефоны всем сотрудникам? Правда. У нас есть корпоративные телефоны, которые выдаются всем без исключения сотрудникам магазинов и офиса.

                    Третий вопрос обычно — про соцпакет. Да, мы выкинули оттуда всё, кроме медстраховки и еды. Каждый сотрудник в зависимости от стажа работы получает очки, на которые можно «докупать» остальные нужные услуги по меню. Это значит, что можно взять дополнительный полис ДМС с отличным покрытием для родственника, либо получить компенсацию отпуска (билетов, путёвок, отелей), либо получить что-то ещё нужное именно вам.
                    Читать дальше →
                  • Выпуск#37: ITренировка — актуальные вопросы и задачи от ведущих компаний

                      Привет! Принесли вам новую подборку задачек с собеседований.

                      Задачки — самые что ни на есть настоящие, любезно предоставленные Леруа Мерлен — крупнейшей в России компанией формата DIY.

                      Леруа Мерлен — компания с серьёзным ИТ, в том числе внутренней разработкой. Именно они создают самый современный и технологичный ритейл в России.



                      Если с лёгкостью решите все задачи из выпуска, советую тогда заодно ознакомиться со списком открытых вакансий в Леруа, мало ли, вдруг это судьба?

                      Для тех, у кого решение вызовет сложности, правильные ответы, как всегда, опубликуются через неделю. Кстати, ответы на задачи из предыдущего выпуска — здесь.
                      Читать дальше →
                    • Перенос конференции в онлайн: опыт InnerSource Commons Summit

                        Этой весной в моде домашние тапочки, футболки и длинные созвоны по зуму. Не отстают от трендов и конференционные активности. Большие российские IT-мероприятия уходят в онлайн, а международные гиганты, которые традиционно собирали на площадках тысячи посетителей, теперь распыляют виртуальные корона-вирусы. Не отстаём и мы, небольшая группа энтузиастов из сообщества InnerSource Commons, которые по планам должны были в Мадриде за паэльей обсуждать проблемы применения Open source подходов внутри организации, а теперь в перерывах между докладами устраиваем конкурс на самый вкусный кекс, приготовленный в микроволновке.

                        InnerSource Commons Summit

                        По словам Johannes Tigges, автора кекса и фото, получилось вкусно
                        Читать дальше →
                      • Корпоративные телефоны каждому из 31 тысячи сотрудников

                          У каждого сотрудника Леруа Мерлен есть корпоративный телефон. Там два слота под симки: один — под корпоративную с пакетом в 100 минут и трафиком для корпоративных приложений и 3 Гб на мобильный интернет-трафик, во второй можно втыкать личную. На телефонах — мессенджеры, соцсети, личные звонки и корпоративный EMM с двумя десятками корпоративных же приложений. То есть если надо сказать что-то сотруднику в магазине, то он получит сообщение в Ватсапе. Заболел ребёнок — тоже жена дозвонится в рабочее время.

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

                          Я с командой провела исследование на 1000 человек про то, можно ли перенести наши основные процессы в мобильность, тогда ещё было не ясно нужен нам терминал или телефон. И если да — какой он должен быть. Будут ли сотрудники использовать свой личный телефон или устройство должно быть предоставлено компанией? Какой личный аппарат сейчас у сотрудника? После этого мы смотрели на мировые практики. В итоге выбор пал в сторону телефона от компании, чтобы не поддерживать зоопарк устройств. Телефон — потому что устройство должно быть у каждого в руках и доступно в любой момент, что нельзя обеспечить с терминалом.
                          Читать дальше →
                        • Устройство Helm и его подводные камни


                            Typhon freight hauler concept, Anton Swanepoel

                            Меня зовут Дмитрий Сугробов, я разработчик в «Леруа Мерлен». В статье расскажу, зачем нужен Helm, как он упрощает работу с Kubernetes, что поменялось в третьей версии и как с его помощью обновлять приложения в продакшене без простоя.

                            Это конспект по мотивам выступления на конференции @Kubernetes Conference by Mail.ru Cloud Solutions — если не хотите читать, смотрите видео.
                            Читать дальше →
                          • Опыт интеграции веб-компонентов на сайт Леруа Мерлен

                            Однажды вечером, попивая кофеек, я получил сообщение от коллеги с емким словом «Дожили» и ссылкой на выступление на PiterJS. В этом выступлении спикер взял сайт «Леруа Мерлен» и показывал, как надо делать оптимизацию на неоптимизированном сайте. И он прав. Если взять PageSpeed Insights, то на главной странице мы имеем следующие значения:


                            Мобилка Десктоп

                            Можно ли «пробить дно»? Да! И это зависит от того, в каком «настроении» находится PageSpeed Insights или в каком положении сегодня звезды на небе.


                            Читать дальше →
                          • Заметки с полей: одна из самых больших OpenSource конференций FOSDEM 2020



                              FOSDEM 2020 на прошлых выходных собрал в Брюсселе 8000+ разработчиков, объединённых идеей открытого ПО. 2 дня, 800 докладчиков и докладов, безлимитное общение и возможность встретить легенд из мира OpenSource. Делюсь своими впечатлениями и заметками с выступлений. Видео с докладов выложили здесь (а это, ни много ни мало, 420 часов контента).
                              Читать дальше →
                            • Как мы взвешивали товары или маленькая ода автоматизации

                              Купили невесомый саморез за 0 рублей и теперь думаете, куда прикрутить? Размышляете о теории заговора в лице пиар-службы магазина? Хорошо, если не понимаете, о чём идёт речь. Это значит, что до вас не добрался мем с весами, которым почему-то все родственники считают важным со мной поделиться.

                              Мем с весами в Леруа Мерлен
                              Начало и развитие истории, откуда я взял эту картинку.

                              История с весами мне напомнила случай, который случился на старте карьеры в Леруа три года назад. Я пришёл в эту компанию на позицию бэкенд-разработчика и сразу попал на трёхнедельную интеграцию: предстояло побывать почти на всех ролях в магазине. Через пару недель уже поработал с местным айтишником (привет, Коля!), ночью потаскал коробки на складе и разобрался в устройстве кухонной вытяжки. Как это было, это отдельное приключение, достойное собственного поста. Парой слов: для разработчика это необычный опыт, который даёт прочувствовать боли сотрудников и покупателей на собственной шкуре.
                              Читать дальше →
                            • Как я определение “продукта” искал

                                В один прекрасный летний день к нашей команде пришла коллега из отдела контента сайта и попросила сделать инструмент для публикации информации о работе кафе и туалетов во всех магазинах страны. И все бы ничего, только мы не имеем никакого отношения к кафе и туалетам, а занимаемся “Платформой услуг”, благодаря которой наши клиенты могут нанять профессионалов в ремонте и обустройстве дома.


                                На мой вопрос: “Почему ты пришла к нам?” — мне был дан простой ответ: “Кафе и туалеты — это тоже услуги для клиентов!” Здесь вспоминаются слова Рене Декарта: “Если бы среди философов навсегда установилось согласие относительно значения слов, то почти все их споры были бы прекращены” (“Правила для руководства ума”).


                                Мы работаем продуктовой командой, и у меня встал вопрос: как описать наш продукт так, чтобы каждый понимал, что мы делаем и в чем мы можем помочь? Чтобы дать на него ответ, я решил разобраться, что означает само слово “продукт”.


                                Результат моих изысканий под катом…
                                image

                                Читать дальше →
                              • Как сэкономить на психотерапевте используя test-driven development

                                  У вас когда-нибудь было такое состояние?

                                  image

                                  Хочу показать вам, как TDD может улучшить качество кода на конкретном примере.
                                  Потому что всё то, что я встречал при изучении вопроса, было довольно-таки теоретическим.
                                  Так получилось, что мне довелось написать два практически идентичных приложения: одно писалось в классическом стиле, так как я ещё не знал тогда TDD, в второе — как раз с использованием TDD.

                                  Ниже я покажу, где были самые большие различия.

                                  Лично мне это было важно, потому что каждый раз, когда кто-то находил баг в моём коде, я ловил увесистый минус на самооценку. Да, я понимал, что баги — это нормально, их пишут все, но ощущение неполноценности никуда не уходило. Также, в процессе эволюции сервиса, я иногда понимал, что сам понаписал такого, что чешутся руки всё выкинуть и переписать заново. И как это получилось — непонятно. Как-то всё было хорошо в начале, но вот пару фич и через некоторое время уже на архитектуру без слёз не взглянешь. Хотя вроде каждый шаг изменения был логичный. Ощущение того, что мне не нравится продукт собственного труда, плавно перетекало в ощущение, что программист из меня, простите, как из говна пуля.

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

                                  Забегая вперёд, по результату нескольких проектов, могу сказать, что TDD даёт более чистую архитектуру, но при этом замедляет разработку. И подходит не всегда и не всем.
                                  Читать дальше →
                                • Как мы развивали ИТ в «Леруа Мерлен»: пересборка двигателя на ходу



                                    Четыре года назад база клиентов велась отдельно в каждом магазине плюс ещё одна — на сайте.

                                    В предыдущих сериях: три года назад мы решили, что нужно делать свою разработку в России. Два года назад начали писать собственный код вместо того, чтобы модифицировать форк кода материнской компании. Сегодняшняя история будет про то, как мы переключались с одного большого легаси-монолита на кучу маленьких микросервисов, соединённых своего рода шиной (оркестратор).

                                    Самый простой юзеркейс: сделать заказ через сайт и забрать его в реальном магазине «Леруа Мерлен» в России. Раньше заказы интернет-магазина обрабатывались в другом приложении вообще и по другой схеме. Теперь нам нужна была омниканальная витрина, чтобы любой заказ был разбит на интерфейс: касса в магазине, мобильное приложение, терминал в магазине, сайт — что угодно. Если вы поставите Linux на микроволновку — пускай будет микроволновка. Главное, чтобы какие-то интерфейсы могли стучать по API к беку и говорить, что вот тут надо оформить такой-то заказ. И получали на это внятный ответ. Вторая история была с запросами наличия и свойств товара из его карточки.

                                    На фронте (скоро и про это напишем) у нас монстр — AEM, а за ним в беке было два больших приложения: OPUS и MoVe. Первое — это база данных свойств каждого товара (от габаритов до описания), второе — отвечает за чекаут, то есть монолит касс. Если сильно упростить.
                                    Читать дальше →
                                  • Зачем нам в «Леруа Мерлен» нужен собственный российский отдел разработки на 200 человек

                                      Привет! Я Валерий Лаптев, руководитель разработки LM в России. За два года мне нужно было поднять огромный отдел, и это был довольно интересный опыт.

                                      Дело в том, что «Леруа Мерлен» есть во многих странах. Головная компания — во Франции, называется ADEO. Там пишут код под Францию, Италию, Испанию и Россию. Бизнес-модели у нас разные: если на российском рынке мы держим минимальные цены (ниже всех конкурентов в мониторинге), то в Европе всё иначе. На самом деле отличий море — начиная от особенностей локали и заканчивая другим законодательством. Есть особенности инфраструктуры России (те же очень большие задержки до Хабаровска) и другой жизненный цикл оформления заказа. Всё это порождает вот такой адский код, состоящий из огромных блоков IF:



                                      Два года назад у нас было 60 магазинов и много-много хотелок по фичам. Накатывались они примерно за полгода и не всегда правильно. Последней каплей после кучи отклонённых по низкому приоритету фич была просьба завести в заказ поле-строку, чтобы мы его уже потом сами парсили. Это нужно было для особенностей доставки в России, поскольку страна больше других стран присутствия LM. Нам отказали и в этом, точнее, сказали, что будет где-то через семь-восемь месяцев.

                                      Полугодовой цикл неспешной головной компании нам не подходил. Естественно, мы предложили написать свой код, отдать на ревью и подождать внедрения… Правда, из этого ничего хорошего не вышло.
                                      Читать дальше →

                                    Самое читаемое