• Как мы интегрировали Huawei Mobile Services в два этапа

      Всем привет, меня зовут Ленар Садыков, и я вместе с командой развиваю и поддерживаю приложение для клиентов Lamoda на базе Android. Сегодня расскажу, как мы добавили поддержку Huawei Mobile Services и Huawei App Gallery.


      В мае 2019 года Департамент торговли США внес Huawei в черный список. Вследствие Google отказался от сотрудничества с Huawei, а Huawei, в свою очередь, перестал распространять устройства с сервисами Google. В ответ на это китайский гигант представил миру Huawei Mobile Services, в том числе — магазин приложений Huawei App Gallery.


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


      image

      Читать дальше →
    • Как работать в команде, которая пишет на 5 языках

        Привет, Хабр! Меня зовут Евгений Сальников, я тимлид одной из команд доставки в компании Lamoda. В нашей команде используются сразу пять языков программирования: PHP, Go, Typescript, Java и Kotlin. Когда я впервые услышал об этом на собеседовании, подумал, что так работать невозможно — все слишком разное. Но спустя год мое мнение кардинально изменилось, и я нашел много преимуществ в таком подходе.


        В этой статье я расскажу:


        • о нашем направлении и системах, обслуживающих доставку;
        • как мы живем с таким разнообразием технологий;
        • как планируем работу над разноплановыми задачами;
        • как растим экспертизу в fullstack-команде и расширяем направление.

        image

        Читать дальше →
      • Как мы выбирали Data Catalog, но в итоге оставили все как есть

          Меня зовут Никита Василюк, я инженер по работе с данными в департаменте данных и аналитики Lamoda. Я и моя команда занимаемся всем, что связано с распределенной системой хранения и обработки данных.


          Периодически нам приходится отвечать на вопросы, где у нас лежат те или иные данные. Поэтому однажды мы решили провести эксперимент и внедрить Data Catalog, чтобы запросы приходили уже не к нам, а в систему. Например, если человеку понадобилась информация, связанная с заказами, он может перейти в систему, ввести слово order и найти все, что ему нужно по этой теме. Мы рассмотрели три инструмента и в итоге… не стали ничего менять. Рассказываю почему.


          Читать дальше →
          • +17
          • 2,9k
          • 3
        • Как мы позволяем разработчикам разрабатывать, а не перерабатывать

            Привет! Меня зовут Костя Карусев, я тимлид в одной из команд направления WMS (Warehouse Management System). В статье я расскажу, как выглядит наш процесс разработки, и как он помогает разработчикам заниматься своим делом и с чистой совестью отдыхать на выходных.


            Отвечу на такие вопросы:


            • почему мы не используем полноценный SCRUM;
            • что такое feature-team и как эта концепция сосуществует с привычными командами;
            • как отстроенные процессы помогают разработке двигаться предсказуемыми темпами, а разработчикам — не перерабатывать.

            Читать дальше →
          • От монолита к модулям: как отстроены бизнес-процессы склада Lamoda

              Привет! Меня зовут Евгений Рябышев, я разработчик в одной из команд направления Warehouse Management System (WMS) компании Lamoda. Я занимаюсь тем, что автоматизирую склад. В этой статье расскажу, как мы строим нашу модульную архитектуру.


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


              Читать дальше →
              • +21
              • 6,1k
              • 2
            • Сверстать всех наверх: онбординг новых сотрудников

                Как адаптировать нового сотрудника компании с момента его выхода на работу и до осознания того, что он стал полноценным членом коллектива, понимающим местные культурные и профессиональные ценности? Об этом рассказал direction lead в Lamoda Александр Афенов в своем докладе на TeamLead Conf 2020. За десять лет стажа в IT он неоднократно собирал команды с нуля, и вывел для себя набор полезных в онбординге практик.

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

                Читать далее
                • +26
                • 4,6k
                • 5
              • Как мы подружили склад и Kotlin: техническая изнанка управления товаром

                  Всем привет! Меня зовут Влад Кошкин, я Java-разработчик в одной из команд направления Warehouse Management System (WMS) в Lamoda. Помимо интернет-магазина, у нас есть собственный склад, где прием товара от поставщика, хранение, сборка заказа, упаковка и отправка покупателю полностью оцифрованы и в значительной мере автоматизированы.

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

                  Также в этой статье я сделал небольшое ревью наших технологий: как мы переехали с Java Server Faces на Kotlin и Android, как работаем сейчас и какие у нас амбиции на ближайший год.


                  Читать дальше →
                • Написали 100 микросервисов и не сошли с ума: как мы в Lamoda шарим знания и технологии

                    Привет, Хабр! Меня зовут Даниил Зиненко, руководитель направления разработки Online Shop в Lamoda.

                    Online Shop – это одно из IT-подразделений в Lamoda, которое отвечает за сайт и за мобильное приложение. Всего у нас 121 сервис, 67 из которых мы написали на Go за последние 4 года.  При этом мы активно продолжаем создавать и внедрять новые. 


                    Эта статья — расшифровка моего мини-доклада с Golang Live 2020. Под катом я расскажу о том, как мы упрощаем задачу написания новых сервисов и облегчаем поддержку существующих. Какие инструменты для этого мы нашли или написали, какие процессы нам в этом помогают.
                    Читать дальше →
                  • Как PHP/Python разработчиков в Lamoda учат писать на Go

                      Привет! Меня зовут Михаил Мохначев, я тимлид команды Core в Lamoda.

                      Наша команда занимается обеспечением работы сайта и системы приема заказов, что бы ни случилось. Мы очень активно используем язык Go — 95% трафика идет через сервисы, которые написаны на нем. Но также есть сервисы на РНР и Python.

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

                      Найти кандидата, чьи навыки идеально подходили бы под наш запрос, очень сложно. Go-разработчиков в принципе мало на рынке, а Go-разработчиков, хорошо знающих к тому же PHP/Python, еще меньше. Поэтому мы решили подойти к этой задаче по-другому: мы нанимаем РНР или Python-разработчиков, и сами учим их писать сервисы на Go по рецепту Lamoda.

                      image
                      Читать дальше →
                    • Автотесты на языке разметки или как мы в Lamoda тестируем микросервисы

                        Всем привет! Меня зовут Кирилл Поляков, я QA-инженер в компании Lamoda. Мы тестируем бекэнд большой e-commerce платформы. В этой статье я расскажу, как мы пришли к автотестам на языке разметки для тестирования микросервисов и делаем это с помощью инструмента собственной разработки – Gonkey, который позволяет использовать стандартизированный набор решений и легко писать тесты на Go.


                        image
                        Читать дальше →
                        • +27
                        • 7,6k
                        • 2
                      • Из 1С в Android-разработку: мой опыт перехода внутри Lamoda

                          Меня зовут Виталий Хмелёв, с 2019 года я работаю в команде Аndroid-разработки в Lamoda, а до того почти семь лет проработал здесь же программистом 1C. В этой статье хочу поделиться своим опытом и дать некоторые советы, которые, я надеюсь, помогут, если вы тоже задумываетесь заняться разработкой на Android.

                          image
                          Читать дальше →
                        • Разработка сложных компонентов: деливерим быстро, поддерживаем легко

                            Всем привет, меня зовут Роман Пятаков! Я техлид во фронтенд-команде Lamoda. И сегодня хочу поговорить с вами о разработке сложных компонентов.

                            Lamoda — это технически сложный продукт, которым пользуются 10 миллионов пользователей ежемесячно, насчитывающий более 100 внутренних подсистем. Вершина этого айсберга – интерфейс онлайн-магазина, или фронтенд. Наша команда занимается разработкой и поддержкой UI десктопного и мобильного сайтов, тех частей нативных приложений для iOS, Android, которые сделаны на WebView, а также разными маркетинговыми «добавками» (это баннеры и лендинги).

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

                            Сразу оговорюсь, что мы в компании используем стек на основе Vue.js. Но если у вас React или Angular, эта статья все равно будет полезна, так как выделенные мною принципы универсальны.

                            image
                            Читать дальше →
                          • Автоматическое обучение моделей с помощью Vowpal Wabbit

                              Всем привет, меня зовут Артем Жаринов, я специалист по анализу данных и машинному обучению команды RnD в Lamoda.

                              Блуждая по нашему сайту вы, возможно, заметили такие полки рекомендаций «С этим товаром покупают» или «Популярные товары». Для персонализированного ранжирования товаров в этих полках мы используем модель из фреймворка Vowpal Wabbit, написанного на языке C. Другой алгоритм отбирает определенный набор товаров, который может показываться на этой полке, а задача Vowpal Wabbit – предсказать вероятность того, что пользователь кликнет на какой-либо товар.

                              В этой статье расскажу, как мы:

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

                              image
                              Читать дальше →
                              • +17
                              • 1,7k
                              • 9
                            • “А вдруг наших спикеров схантят?!” Зачем и как учить инженеров выступать

                                Привет! Меня зовут Женя Голева, я работаю деврелом в компании Lamoda уже четыре года. Сейчас процесс подготовки спикеров у нас налажен и отработан, но так было не всегда. В начале работы мое предложение о выступлении встречало сопротивление и у разработчиков, и у руководителей команд.

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

                                image
                                Читать дальше →
                                • +39
                                • 5,7k
                                • 8
                              • Lamoda x Joker 2020

                                  Привет, Хабр! Меня зовут Влад Кошкин, я java-разработчик в Lamoda. С 25 по 28 ноября наша команда впервые примет участие в онлайн-конференции Joker 2020.

                                  У Lamoda огромный и сложный склад: 40 000 м², миллионы товаров на полках, тысячи людей — и все это мы автоматизируем на Java через WMS (Warehouse Management System).

                                  image

                                  На нашем стенде мы рассказываем о том, как подружили Kotlin с бэкендом, строим модульную архитектуру, позволяем разработчикам разрабатывать, избегая лишних встреч. А еще мы будем травить байки на стенде — под катом расписание и игра-квест, где можно почувствовать себя частью команды.
                                  Читать дальше →
                                • Использование Azure DevOps от разработки до сборки релиза в Dynamics AX 2012

                                    Использование контроля версий для разработки в ERP-системе MS Dynamics AX — штука довольно неоднозначная. Кто-то не использует совсем, кто-то использует встроенную систему контроля версий MorphX.

                                    Меня зовут Игорь Глухов, я разработчик MS Dynamics AX в компании Lamoda. В этой статье речь пойдет о том, как мы начали использовать в качестве контроля версий Team Foundation Server и Azure DevOps в Dynamics AX 2012 и как стали применять контроль версий для подготовки релизов.

                                    Ниже расскажу все подробности:

                                    • История изменений: с чего начали;
                                    • Контроль версий: синхронизация и подключение среды разработки;
                                    • Подключение Test и Prerelease к контролю версий;
                                    • Как происходит сборка релиза сейчас и какие результаты получили на выходе.

                                    image
                                    Читать дальше →
                                  • Технорадар Lamoda 2020: что изменилось за два года

                                      Технологический радар — диаграмма, на которой можно увидеть IT технологии и инструменты, которые мы используем в Lamoda, разделенные по областям применения и статусам. В 2018 году мы выкладывали здесь на Хабре подробную статью с расшифровкой актуального на тот момент техрадара. Что изменилось за два года, и зачем мы продолжаем регулярно обновлять радар — читайте в этой статье.

                                      image
                                      Читать дальше →
                                    • Технические доклады Lamoda на GolangLive 2020

                                        Привет, Хабр! Меня зовут Даниил Зиненко и я руководитель направления разработки Online Shop в Lamoda. С 14 по 17 октября наша Go-команда будет на онлайн-конференции GolangLive со стендом, на который мы и хотим вас пригласить. Ссылка на стенд.

                                        Ниже расписание мини-докладов от наших инженеров и игра-квест, где можно выиграть электросамокат Ninebot KickScooter MAX G30P.

                                        image
                                        Читать дальше →
                                        • +19
                                        • 2,5k
                                        • 2
                                      • Как мы оркестрируем процессы обработки данных с помощью Apache Airflow

                                          Всем привет! Меня зовут Никита Василюк, я инженер по работе с данными в департаменте данных и аналитики компании Lamoda. В нашем департаменте Airflow играет роль оркестратора процессов обработки больших данных, с его помощью мы загружаем в Hadoop данные из внешних систем, обучаем ML модели, а также запускаем проверки качества данных, расчеты рекомендательных систем, различных метрик, А/Б-тестов и многое другое.

                                          image

                                          В этой статье я расскажу:

                                          • что за зверь этот Airflow, из каких компонентов состоит и как они между собой взаимодействуют
                                          • про основные сущности Airflow: пайплайны, которые называются DAG, Operator и еще про несколько вещей
                                          • как преуспеть в разработке на Airflow
                                          • как мы внедрили генерацию пайплайнов и так называемое «декларативное писание пайплайнов»
                                          • про плюсы и минусы использования Airflow
                                          Читать дальше →
                                          • +23
                                          • 8,4k
                                          • 8
                                        • Как создать шаблон описания системы и начать его использовать

                                            Когда в IT-компании работают 6 человек, которые пилят одну систему и обсуждают её в кулуарах, описание системы и документация кажутся ненужными. Но когда систем уже более 100, без описания не обойтись. Ведь непродуманное изменение UI может остановить создание заказов. Мы создали единый шаблон описания системы, чтобы документация стала максимально полезной.

                                            Меня зовут Александра Камзеева, я работаю системным аналитиком уже 9 лет, из них 3.5 года в Lamoda. Я много читаю, анализирую текущую документацию и создаю новую. В работе я всегда структурирую информацию и делаю её максимально удобной.

                                            image
                                            Читать дальше →

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