Как стать автором
Поиск
Написать публикацию
Обновить
303.34
Ozon Tech
Команда разработки ведущего e‑com в России
Сначала показывать

Ускоряем поиск по коду в Android Studio

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

Рассмотрим возможности Android Studio, позволяющие быстрее ориентироваться в коде: находить нужные фрагменты и выявлять связи между ними.

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

Читать далее

Osquery&SIEM. Вы правила мониторинга продаёте? Нет, просто показываем

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

Пока в сети появляется всё больше разговоров о запрете использования Apple-техники в определённых кругах, мы хотим показать, как у нас организован мониторинг macOS с точки зрения безопасности корпоративной инфраструктуры.

Статья является продолжением первой части из микросерии аналитических статей, посвящённых тому, как мы мониторим macOS в Ozon.

Тут будут боль мемы и немного примеров инцидентов :)

Читать далее

Приглашаем на Ozon Tech Community Mobile Meetup

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

Всем привет!

Меня зовут Павел, я руководитель отдела разработки мобильных приложений торговой площадки.

Приглашаем на Ozon Tech Community Mobile Meetup, на котором подробно обсудим дизайн-систему — это продукт, который структурирует набор компонентов и гайдлайнов. Это позволяет дизайнерам и разработчикам создавать последовательный и согласованный визуальный язык для продуктов и услуг компании. 

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

Об этом поговорим на Ozon Tech Community Mobile Meetup в Москве, 29 августа в 19:00.

Читать далее

Clean Git History, или Тёмная сторона VCS

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров16K

Всем привет! Меня зовут Маша, и я Golang Backend Developer в компании Ozon. В этой статье я хотела бы поговорить о теме, так или иначе объединяющую все сферы нашего любимого мира IT. А именно — VCS Git.

Без системы контроля версий сейчас невозможно представить ни один проект. Это оплот любой кодовой базы, это мощнейший инструмент, с помощью которого эту базу можно изменять и отслеживать. Однако нередко чистотой истории изменений пренебрегают, полагаясь на старое доброе «И так сойдёт!», абсолютно игнорируя при этом сложность понимания и поддержки такой истории в будущем.

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

К тёмной стороне Git...

Дорогая, что-то пошло не так. Гид по пустым состояниям и ошибкам + шаблоны на все случаи

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

Всем привет! Меня зовут Кира Калимулина, я руководитель группы UX-редактуры в Ozon. Я занимаюсь всеми интерфейсными текстами в приложении и на сайте. 

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

Этот гайд будет полезен дизайнерам, фронтендерам, бэкендерам и мобильным разработчикам — словом, всем, кто в своей работе сталкивается с UX-текстами и иногда вынужден их писать. Если вы не являетесь пишущим специалистом, просто берите готовые шаблоны и адаптируйте для своего проекта. Пользуйтесь

Что же случилось?

Отранжированные и смешные: создаем систему выстраивания пользовательской ленты

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров2.8K

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

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

Читать далее

Osquery&Fleet. Применение в корпоративной сети на примере яблочных девайсов

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

Я расскажу о том, что мы с командой сделали для поднятия сервиса по сбору событий и низкоуровневой телеметрии на примере MacOS: как готовили архитектуру, с какими проблемами столкнулись и как их решали.  Подробнее остановлюсь на возможностях osquery&Fleet и на том, какие must-have-события рекомендую собирать.

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

Читать далее

Приглашаем на Ozon Tech Intro meetup: как работают системы поиска, рекомендаций и рекламы

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

UPD: Добавили записи докладов и слайды

Всем привет!
Меня зовут Алексей, я руководитель отдела по продукту и технологиям «Рекомендации и персонализация».

Мы уделяем много времени проектированию архитектуры, улучшению скорости и оптимизации алгоритмов:

Ищем пути продукта и UX.

Ускоряем рантайм поиска.

Используем ML для рекламной платформы.

Обучаем модели для наилучшего результата рекомендаций.

И со всем этим ещё и закапываемся в аналитику и проводим множество A/B-экспериментов.

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

Читать далее

Приглашаем на Ozon Tech Intro meetup: строим складские системы на .NET

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

UPD: Добавили записи докладов и слайды

Всем привет!
Меня зовут Мария, и я занимаюсь разработкой автоматизированных систем измерения ОВХ (объемно-весовые характеристики товаров). А если брать шире, то я представляю огромный блок по продукту и технологиям товарных операций.
Что это такое? Об этом наша команда поговорит на Ozon Tech Intro meetup: строим складские системы на .NET, 24 июля в Астане. И онлайн тоже будет!

На митапе ребята подробно обсудят систему управления складом WMS (Warehouse Management System), которая принимает, хранит, собирает и отправляет покупателям миллионы заказов каждый день. WMS построена на микросервисной архитектуре и работает на распределённом между дата-центрами кластере K8s. Система состоит из 100+ сервисов на .NET Core, которые хранят данные в базах PostgreSQL, взаимодействуют через gRPC и обмениваются сообщениями через Kafka.

Читать далее

Как построить систему, способную выдерживать нагрузку в 5 млн rps

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров58K

Всем привет! 

Меня зовут Владимир Олохтонов, я руковожу командой разработки в отделе Message Bus, который является частью платформы Ozon. Мы занимаемся разработкой самых разных систем вокруг Kafka, etcd и Vault. В этой статье я расскажу о том, как мы строили линейно масштабируемую gRPC-прокси перед Kafka, способную обслуживать миллионы запросов в секунду, используя Go.

Читать далее

Хозяйке на заметку: автоматизируем рутинные процессы и экономим время

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

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

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

Читать далее

Скажи что-нибудь на разрабском, Figma

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

Привет! С вами Виктор 👺, тэнгу‑хранитель одной из дизайн‑систем Ozon.

В июне 2023 года Figma выкатила мощное обновление, во многом ориентированное на разработчиков. Точнее на поиск общего языка между проектировщиком и программистом. Я давно занимаюсь дизайн‑системами и знаю как тесно связан дизайн и код. Насколько взаимопонимание между дизайнером и разработчиком ускоряет доставку продукта до пользователя.

Однако, кое‑где у нас порой, отношения дизайнера и разраба токсичны и контрпродуктивны. Связано это, как всегда, с непониманием. Разный взгляд, незнакомый язык, непохожие ценности. Кроме вариантов решения продуктовой задачи, дизайнер видит ритм отступов, гармонию сочетания цветов, всякие золотые сечения и правила внутреннего и внешнего. Ну, должен видеть. А разработчик смотрит на сложность реализации, на переиспользуемость компонентов, отображение на разных размерах экрана, поведение при переполнении или отсутствии данных.

Помогут ли новые фишки Figma наладить общение?

Потрогаем Dev Mode →

Бизнес-партнёр по информационной безопасности: взгляд изнутри

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

 

В этой статье описана роль бизнес-партнёра по информационной безопасности (БП ИБ) и мой опыт работы в этой роли. Сегодня она относительно непопулярна на рынке, но её значимость начинает расти, причём как в России, так и за границей (там это называется Business Information Security Officer (BISO)). Сразу подчеркну, что всё сказанное здесь основывается на моём видении и опыте, и может отличаться от практик, принятых в других компаниях.

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

Читать далее

Изнутри: Swift макрос — #Preview

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

Макрос #Preview в языке Swift предоставляет удобный способ создания и предварительного просмотра компонентов пользовательского интерфейса. Он позволяет разработчикам быстро и легко создавать превью для своих View, чтобы визуально оценить, как они выглядят и взаимодействуют.

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

Читать далее

Осознанная оптимизация Compose

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров64K

Jetpack Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.

Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.

Читать далее

Приглашаем на Ozon Tech Community Platform Meetup

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

UPD: Добавили записи докладов и слайды

Разводим не мосты, а кипучую деятельность.

Привет, меня зовут Ильяс и я старший разработчик в Ozon Tech.

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

А потом я расскажу про наше собственное Service Mesh Warden, реализующее все виды дискаверинга и балансировки. 

Читать далее

Императивный UIKit‍ vs Декларативный SwiftUI

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

Для разработки iOS-приложений можно использовать два основных фреймворка: UIKit и SwiftUI. Однако при переходе на SwiftUI многие разработчики сталкиваются с трудностями, ведь парадигмы программирования у двух инструментов сильно отличаются.

В этой статье я хочу помочь разработчикам приложений для iOS понять различия между императивным и декларативным подходами к программированию, а также рассмотреть плюсы и минусы фреймворков UIKit и SwiftUI. Знакомство с ними необходимо для оптимизации процесса разработки и создания продукта высокого качества.

Читать далее

Сказ о том, как специалисты IT-поддержки скрипты писали…

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

Сегодня мы немного расскажем вам о работе IT-поддержки в Ozon Tech: что мы делаем и зачем, как используем Python и как именно он нам помогает решать рутинные проблемы и не только.

Опытным коллегам, пишущим на Python, мы не раскроем каких-то сакральных тайн с точки зрения кода, а вот аналитикам, возможно, поможем усовершенствовать процессы. Ну поехали что-ли!

Читать далее

Контекст, награда, много рук. Многорукие бандиты как метод принятия решений

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров10K

Всем привет! В предыдущих двух статьях мы подробно рассмотрели технические и методологические аспекты A/B-тестирования в Ozon. А сейчас время перейти к не менее интересным темам. Так как наша команда занимается не только A/B-тестами, но и в целом развитием методов принятия решений с помощью causal inference, стоит уделить внимание многоруким бандитам. 

В этой статье мы рассмотрим методологию и границы применимости классических многоруких и контекстуальных бандитов, а также реализуем контекстного бандита, в основе которого будут сэмплирование Томпсона и нейронная сеть. Ну и, конечно, мы постараемся ответить на главный вопрос: могут ли многорукие бандиты заменить A/B-тесты? 

Читать далее

D&D как инструмент тимлида: решаем проблемы команды с помощью разговорных ролевых игр

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

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

Команда разработки и вообще любая группа людей — это сложный клубок из межличностных отношений и персональных компетенций. Я руковожу командами разработки и эксплуатации уже 8 лет, и за это время встречался с разными командными проблемами. Хочу предложить вам свою методологию их решения при помощи разговорных ролевых игр (РРИ).

Под катом вас ждет:

История о том, как я сам пришёл к тому, чтобы проводить РРИ для коллег.

Краткий рассказ о том, что из себя представляют такие игры.

Примеры решения реальных командных задач.

Полная методология подготовки и проведения игры. Полезно будет вам и вашему мастеру.

Вперёд к приключениям

Информация

Сайт
ozon.tech
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия