Как стать автором
Обновить

Два сапога — пара, а три — уже community: как алгоритмы на графах помогают собирать группы товаров

Время на прочтение14 мин
Количество просмотров26K

Привет, Хабр! Меня зовут Иван Антипов, я занимаюсь ML в команде матчинга Ozon. Наша команда разрабатывает алгоритмы поиска одинаковых товаров на сайте. Это позволяет покупателям находить более выгодные предложения, экономя время и деньги.

В этой статье мы обсудим кластеризацию на графах, задачу выделения сообществ, распад карате-клуба, self-supervised и unsupervised задачи — и как всё это связано с матчингом.

Читать далее

Разбираем врожденный изъян маркетплейсов, из-за которого с них уходят продавцы

Время на прочтение18 мин
Количество просмотров13K

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

Читать далее

Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты

Время на прочтение14 мин
Количество просмотров6.1K

Всем привет, меня зовут Никита, я старший разработчик в компании Озон и работаю над iOS-приложением «Пункт Озон».

«Пункт Озон» — это мобильное приложение для работников и менеджеров пункта выдачи заказов (далее просто ПВЗ). В приложении множество различных разделов для повседневной работы. Самые популярные разделы — это «Приёмка», «Выдача» и «Инвентаризация», что в мобильной, что в web-версии. Именно они помогают выполнить главные задачи работников ПВЗ — принять заказы на баланс и позже выдать их клиентам.

Для скорости работы и защиты от ошибок работники ПВЗ производят эти действия через сканирование штрих-кодов, расположенных на самих заказах или на тарах, в которых они приезжают. Если брать web-версию, то там «все просто»: покупается нормальный/качественный отдельный сканер, подключается к ПК — и проблем, считай, нет. А вот с мобильным приложением дела обстоят немного не так. У смартфона есть только камера, и она явно не проектировалась под задачу «сканируем только штрих-коды». Но с другой стороны, камера делает фотографию, а раз у нас есть фотография, то можно там найти штрих-код. К счастью, Apple и Google предоставляют нам инструментарий для этого.

А раз я iOS-разработчик, то и рассказывать я вам буду о нашем iOS-приложении. И сегодня у нас в меню: 

с какими проблемами столкнулись пользователи при использовании мобильного сканера, и почему мы стали искать возможность его улучшения;

сравнение инструментов, которые предлагает Apple;

технический обзор одного из них;

история его внедрения в наше приложение и конечные результаты.

Читать далее

Видеоредактор, работа с видео и зачем там Canvas

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.3K

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

Одной из задач, где мы в Ozon используем Canvas, является обработка видео. Для это у нас реализован минималистичный видеоредактор. Зачем нужно было делать свой редактор для веба и почему не использовать готовый? Все ответы под катом.

Читать далее

Переделали всё, не разломав ничего, или Проект по информационной безопасности (взглядом PM)

Время на прочтение10 мин
Количество просмотров5.2K

Тихо скрипнула задвижка, дверь открылась, и вот они — специалисты информационной безопасности со своими задачами. Куда бежать? Кого спасать? Где лазейки? А поздно! Мы уже всё увидели, услышали и готовы действовать. Новость или само появление отдела информационной безопасности (или Cyber Security-направления) в большой, узнаваемой на рынке компании с хорошей репутацией, часто встречается сотрудниками компании очень неоднозначно.

В данной статье поделюсь своими «заметочками» и полученным опытом в изменении уже функционирующих процессов разработки в компании. Процессов, которыми пользуются абсолютно все в компании. 

Читать далее

Как дизайнеры помогают заменить GitLab: что из этого получилось

Время на прочтение14 мин
Количество просмотров13K

Привет! Меня зовут Валерия, я дизайнер внутренних сервисов в Ozon Tech. Наша команда занимается продуктами, которые коллеги используют для доступа к инфраструктуре Ozon, приоритизации задач, проведения регламентных работ, выкатки и управления релизами.

Сегодня речь пойдёт про последнее упомянутое решение — REpublic или релизный портал, который помогает нашим разработчикам выкатывать более тысячи релизов каждый день. Я расскажу, зачем мы начали его делать и с какими сложностями столкнулись.

Читать далее

«Барби»: какие проблемы инфобеза может показать нам Барбиленд

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров15K

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

Но, помимо этого, Барбиленд — ещё и хороший пример того, как не надо выстраивать информационную безопасность. Под катом разберём, какие классические проблемы ИБ можно найти в фильме и что мы можем из этого вынести.

Читать далее

Стажёры рулят или Почему не надо бояться доверять молодым сотрудникам

Время на прочтение13 мин
Количество просмотров16K

Боитесь стажёров? Не хотите тратить своё время на обучение начинающих специалистов? Задач много, а специалистов по ИБ мало?

Делюсь опытом построения стажёрского конвейера на базе SOC. Может, это решит ваши проблемы.

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

Читать далее

Насмотренность в разработке: путь к чистому и качественному коду

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.1K

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

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

Читать далее

Как есть слонов по кусочкам в крупных популяциях, или как мы работаем с большими проектами

Время на прочтение6 мин
Количество просмотров5.9K
Привет, Хабр! Давайте поговорим о проектном управлении в продуктах Ozon.

Меня зовут Андрей, я пришёл в компанию менеджером по продукту полгода назад. И первое, что бросилось мне в глаза, — отсутствие излишней бюрократии, которую ожидаешь встретить в корпорации: формальных планёрок, отчётных встреч, бесконечных служебок и приказов. Ура! Не надо отчитываться по решённым задачам разработчиков, объёму техдолга, собирать статистику спринтов, искать виноватых или самому ходить «на ковёр».

При дальнейшем погружении в работу нашей команды выяснилось, что частично эти процессы всё же есть, но реже, чем я ожидал в начале. Отчеты — перед заказчиками по проектам в работе, а планирование происходит раз в месяц (как и у большинства других команд); ключевой формат планирования — технический комитет, где встречаются заказчики от бизнеса и исполнители от IT.

Такой подход к планированию связан с масштабом — количеством и размером продуктов в Ozon. Здесь нет фундаментального ноу-хау — принцип «Давайте есть слона по кусочкам» для работы с большими проектами работает и в нашем случае. Наша специфика в том, что приходится думать не только о нюансах работы с отдельно взятым слоном, но и об их популяции: учёте, хранении, планировании поставок, селекции и разведении. 


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

Как работает Backend-Driven UI на мобильном клиенте

Время на прочтение12 мин
Количество просмотров30K

Привет всем, кто хочет изменять интерфейс мобильного приложения до выхода нового релиза, всем, кто хочет без лишних доработок на клиенте проводить А/B-тестирование, и всем, кто хочет забыть о срочных «новых пятничных промоакциях», которые нужны уже в понедельник. В этой статье мы поговорим об основах Backend-Driven UI: рассмотрим абстрактно, как всё работает на бэкенде и на клиенте. 

Читать далее

50 оттенков нагрузочного тестирования

Время на прочтение11 мин
Количество просмотров31K

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

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech и расскажу про разнообразный спектр вариантов НТ: как именно мы его применяем и какие инструменты используем. Статья будет полезна тем, кто уже что-то слышал про НТ и хочет добавить его в свой проект, но пока страшновато. Давайте разбираться!

Читать далее

Пережить распродажу на Ozon: хайлоад, сковородки и 38 инфарктов

Время на прочтение9 мин
Количество просмотров13K

Мы нечасто задумываемся о том, как работает тот или иной сервис и какой объём работ скрывается за тем, чтобы товар или услуга прибыли к нам вовремя. Взять, например, «чёрную пятницу» и День холостяка в e-com — дни самых больших распродаж. Казалось бы, что там такого? Со стороны может выглядеть, что главное — прогреть аудиторию предложениями разной степени заманчивости и запастись товарами на складах. Конечно, это не так. На деле нескольким дням распродаж предшествует год активной подготовки: от прогнозирования нагрузки и закупки железок до перестройки архитектуры. О том, на что мы обращали внимание и как готовились к высокому сезону, читайте под катом. 

Читать далее

Перформанс мониторинг по-взрослому: выкладываем запись Mobile Meetup

Время на прочтение1 мин
Количество просмотров3.5K

Привет! Как и обещали, возвращаемся с записью второго митапа для мобильных разработчиков от Ozon Tech и сообщества Coffee&Code. В анонсе я уже рассказал о нашем стеке, что у нас 150+ мобильных инженеров и подход Backend-Driven UI — повторяться не буду. Вместо тысячи слов — просто посмотрите запись:)

Читать далее

Считаем, сколько заплатить в магазине и проверяем поле морского боя: разбор задач для разработчиков C#, iOS и Android

Время на прочтение8 мин
Количество просмотров31K

Привет, Хабр! Я Ани, отвечаю в Ozon Tech за обучение.

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

Контест нам заменяет скрининг — мы проверяем технические навыки и опыт работы будущих участников, так как курсы рассчитаны на мидлов.

Ранее мы публиковали разбор задач по направлениям Go и QA (раз, два), пришло время поделиться задачами для C#, iOS (Swift) и Android (Kotlin, Java).

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

Читать далее

Сказ о том, как мы нагружаем Ozon в мультиЦОД-архитектуре

Время на прочтение8 мин
Количество просмотров6.3K

Привет, я Таня, и наша команда занимается разработкой инфраструктуры для нагрузочного тестирования (НТ) в Ozon. Наша цель — предоставить разработчикам простой и понятный инструмент для подготовки и самостоятельного запуска нагрузочных тестов — можно сказать, нагрузочное тестирование as a service. У нас НТ широко распространено и поставлено на поток — большинство продуктовых сервисов регулярно тестируется по расписанию, в автоматическом режиме. Кстати, подавляющая часть тестов проводится не на тестовых стендах, а прямо в продакшене. Это связано с определёнными рисками, ведь есть ещё и реальный пользовательский трафик. Обложившись алертами и автостопами (критериями для автоматической остановки тестов), мы сводим эти риски к минимуму.  

Компания растёт, увеличивается число пользователей и сервисов. В один прекрасный день нам стало тесно в рамках одного дата-центра — началось масштабное расширение на три ЦОДа. Каждый сервис обзавёлся дополнительными инстансами — и новыми требованиями к нагрузке. У НТ-разработчиков появилась задача тестировать сервисы, разбросанные по разным ЦОДам, и при этом ничего не уронить (мы ребята высоконагруженные). Кроме того, для уменьшения объёмов трафика между ЦОДами и сетевых задержек сервисы при взаимодействии перешли с серверной на клиентскую балансировку. Так как при НТ требуется максимально точно воспроизводить клиентский трафик, от генераторов нагрузки ожидалось такое же поведение. О том, какие перед нами стояли задачи и как мы с ними справились, читайте под катом. 

Под кат

Экспортируем модули из Go-сервиса: сотворение директории pkg

Время на прочтение6 мин
Количество просмотров9.2K

Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.

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

Читать далее

Триггернутые, или Как безболезненно встроить нагрузочное тестирование в ваш пайплайн

Время на прочтение10 мин
Количество просмотров5K

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

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech. В прошлый раз я рассказывала о типах нагрузочного тестирования (НТ) и о том, как создавать пушки под свои нужды. Сегодня же научу запускать НТ по кнопочке в CI. Статья будет полезна тем, кто уже имеет наработки по НТ, но ещё не автоматизировал их или ищет способы запускать тесты не по крону.

Читать далее

Как создать инструмент для контроля остатков на складе Озон с помощью API и google-таблиц

Время на прочтение16 мин
Количество просмотров36K

Привет! В этой статье хочу поделиться тем, как мы создали инструмент на основе google sheets для контроля товарных остатков на складе Озон по схеме работы FBO (full by Озон). Я расскажу, как таблица помогает автоматизировать принятия решений по поставкам товара на склад Озон и ответить на такие вопросы как: 

Когда начинать подготовку поставки товара на склад? 

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

Эта статья будет Вам полезна, если Вы ищете способы оптимизации бизнес-процессов, связанных с планированием и контролем остатков товаров на складе Озон. Ну и конечно в конце статьи будет ссылка на шаблон таблицы.

Читать далее

Внутренний мир OZON.ru

Время на прочтение4 мин
Количество просмотров13K
В ноябре для слушателей специализации «Менеджмент в сфере интернет-технологий» было организовано выездное занятие в логистическом центре интернет-магазина OZON.ru, который расположен в Твери. PR-директор компании Михаил Ятковский рассказал об особенностях организации и специфике данного бизнеса.

OZON.ru — крупнейший российский интернет-магазин, предлагающий книги, кино и музыкальную продукцию, электронику, фототехнику и мобильные телефоны, программные продукты и мультимедийные игры и многое другое. Интернет-магазин был открыт в 1998 году и является одним из первых отечественных масштабных проектов в электронной коммерции. У его истоков стояла группа энтузиастов-любителей фантастики и фэнтези из Санкт-Петербурга, которая создала специальный интернет-ресурс для обмена впечатлениями о любимых литературных жанрах и новых книгах. Вместе с обсуждением книг участники дискуссий активно интересовались и тем, где эти книги можно приобрести. Так родилась идея об открытии интернет-магазина, который использовал бы созданный электронный библиографический каталог, и в котором можно было бы приобрести обсуждаемые книги.
Читать дальше →
1
23 ...