home.social

#ozon_tech — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #ozon_tech, aggregated by home.social.

  1. Релизный процесс QA: от рутины к автоматизации — как мы это сделали

    Привет, Хабр! Меня зовут Богдан Бурков, я старший инженер по тестированию в мобильном приложении для продавцов Ozon Seller. В этой статье я хочу поделиться историей, как мы с коллегой, ведущим инженером по тестированию Владиславом Поповым (привет, Влад!), улучшали наш релизный процесс и что у нас из этого получилось. Мы уже оптимизировали ручные проверки и увеличивали покрытие автотестами, но релизное тестирование всё равно занимало почти рабочий день. Подробнее об этом опыте можно прочесть в статье другого коллеги . Мы же решили копнуть глубже — не в сами тесты, а в процессы вокруг них. Выписали всё, что повторяется от релиза к релизу, отметили, какие действия блокируют переход на следующие этапы, оценили, сколько времени уходит на рутину, и выбрали те задачи, которые проще всего перенести в CI. Так мы нашли главную причину потерь времени и поняли, куда двигаться дальше. В статье расскажу, что именно мы автоматизировали, что получилось не сразу и как в итоге сократили релизное тестирование примерно с семи до четырёх часов.

    habr.com/ru/companies/ozontech

    #тестирование_мобильных_приложений #релиз #релизы #релизменеджмент #релизный_цикл #мобильная_разработка #qa_automation #tms #cicd #ozon_tech

  2. Релизный процесс QA: от рутины к автоматизации — как мы это сделали

    Привет, Хабр! Меня зовут Богдан Бурков, я старший инженер по тестированию в мобильном приложении для продавцов Ozon Seller. В этой статье я хочу поделиться историей, как мы с коллегой, ведущим инженером по тестированию Владиславом Поповым (привет, Влад!), улучшали наш релизный процесс и что у нас из этого получилось. Мы уже оптимизировали ручные проверки и увеличивали покрытие автотестами, но релизное тестирование всё равно занимало почти рабочий день. Подробнее об этом опыте можно прочесть в статье другого коллеги . Мы же решили копнуть глубже — не в сами тесты, а в процессы вокруг них. Выписали всё, что повторяется от релиза к релизу, отметили, какие действия блокируют переход на следующие этапы, оценили, сколько времени уходит на рутину, и выбрали те задачи, которые проще всего перенести в CI. Так мы нашли главную причину потерь времени и поняли, куда двигаться дальше. В статье расскажу, что именно мы автоматизировали, что получилось не сразу и как в итоге сократили релизное тестирование примерно с семи до четырёх часов.

    habr.com/ru/companies/ozontech

    #тестирование_мобильных_приложений #релиз #релизы #релизменеджмент #релизный_цикл #мобильная_разработка #qa_automation #tms #cicd #ozon_tech

  3. Релизный процесс QA: от рутины к автоматизации — как мы это сделали

    Привет, Хабр! Меня зовут Богдан Бурков, я старший инженер по тестированию в мобильном приложении для продавцов Ozon Seller. В этой статье я хочу поделиться историей, как мы с коллегой, ведущим инженером по тестированию Владиславом Поповым (привет, Влад!), улучшали наш релизный процесс и что у нас из этого получилось. Мы уже оптимизировали ручные проверки и увеличивали покрытие автотестами, но релизное тестирование всё равно занимало почти рабочий день. Подробнее об этом опыте можно прочесть в статье другого коллеги . Мы же решили копнуть глубже — не в сами тесты, а в процессы вокруг них. Выписали всё, что повторяется от релиза к релизу, отметили, какие действия блокируют переход на следующие этапы, оценили, сколько времени уходит на рутину, и выбрали те задачи, которые проще всего перенести в CI. Так мы нашли главную причину потерь времени и поняли, куда двигаться дальше. В статье расскажу, что именно мы автоматизировали, что получилось не сразу и как в итоге сократили релизное тестирование примерно с семи до четырёх часов.

    habr.com/ru/companies/ozontech

    #тестирование_мобильных_приложений #релиз #релизы #релизменеджмент #релизный_цикл #мобильная_разработка #qa_automation #tms #cicd #ozon_tech

  4. Великая ересь, или Как использовать protobuf без контракта

    Привет! На связи Влад, разработчик product-facade — сердца витрины Ozon и одного из самых высоконагруженных сервисов, который выдерживает до 2,2 млн RPS. В прошлой моей статье я рассказывал об одном из архитектурных вызовов, с которым мы столкнулись в процессе работы. В этот раз продолжим тему микросервисной архитектуры и поговорим о том, что происходит, когда привычная строгость контрактов начинает мешать. Одна из ключевых причин использования gRPC для связи между сервисами — строгий protobuf-контракт. Он даёт типизацию, фиксирует схему данных и снижает риск случайно сломать интеграцию. Но иногда случаются ситуации, когда эти плюсы загоняют нас в рамки. Например, когда сервис просто передаёт данные дальше, но его всё равно приходится обновлять из-за изменений, которые нужны только конечному потребителю. В таких случаях полезно знать, какие механизмы protobuf позволяют работать с контрактом более гибко, не отказываясь от него полностью. В статье расскажу о трёх из них и приведу примеры, для чего они могут применяться.

    habr.com/ru/companies/ozontech

    #gRPC #protobuf #микросервисы #контракт #проксирование #передачаданных #строгийконтракт #механизмыprotobuf #обновлениесервиса #ozon_tech

  5. Великая ересь, или Как использовать protobuf без контракта

    Привет! На связи Влад, разработчик product-facade — сердца витрины Ozon и одного из самых высоконагруженных сервисов, который выдерживает до 2,2 млн RPS. В прошлой моей статье я рассказывал об одном из архитектурных вызовов, с которым мы столкнулись в процессе работы. В этот раз продолжим тему микросервисной архитектуры и поговорим о том, что происходит, когда привычная строгость контрактов начинает мешать. Одна из ключевых причин использования gRPC для связи между сервисами — строгий protobuf-контракт. Он даёт типизацию, фиксирует схему данных и снижает риск случайно сломать интеграцию. Но иногда случаются ситуации, когда эти плюсы загоняют нас в рамки. Например, когда сервис просто передаёт данные дальше, но его всё равно приходится обновлять из-за изменений, которые нужны только конечному потребителю. В таких случаях полезно знать, какие механизмы protobuf позволяют работать с контрактом более гибко, не отказываясь от него полностью. В статье расскажу о трёх из них и приведу примеры, для чего они могут применяться.

    habr.com/ru/companies/ozontech

    #gRPC #protobuf #микросервисы #контракт #проксирование #передачаданных #строгийконтракт #механизмыprotobuf #обновлениесервиса #ozon_tech

  6. Великая ересь, или Как использовать protobuf без контракта

    Привет! На связи Влад, разработчик product-facade — сердца витрины Ozon и одного из самых высоконагруженных сервисов, который выдерживает до 2,2 млн RPS. В прошлой моей статье я рассказывал об одном из архитектурных вызовов, с которым мы столкнулись в процессе работы. В этот раз продолжим тему микросервисной архитектуры и поговорим о том, что происходит, когда привычная строгость контрактов начинает мешать. Одна из ключевых причин использования gRPC для связи между сервисами — строгий protobuf-контракт. Он даёт типизацию, фиксирует схему данных и снижает риск случайно сломать интеграцию. Но иногда случаются ситуации, когда эти плюсы загоняют нас в рамки. Например, когда сервис просто передаёт данные дальше, но его всё равно приходится обновлять из-за изменений, которые нужны только конечному потребителю. В таких случаях полезно знать, какие механизмы protobuf позволяют работать с контрактом более гибко, не отказываясь от него полностью. В статье расскажу о трёх из них и приведу примеры, для чего они могут применяться.

    habr.com/ru/companies/ozontech

    #gRPC #protobuf #микросервисы #контракт #проксирование #передачаданных #строгийконтракт #механизмыprotobuf #обновлениесервиса #ozon_tech

  7. От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

    Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходит около 600 000 RPS , а строгий SLA требует ответа в пределах 50 мс. Для расчёта нужно за минимальное время выбрать оптимальный склад с учётом остатков, доступности и других данных, которые хранятся в разных микросервисах и их базах данных. Первое, что приходит на ум, — обратиться к этим сервисам по API во время запроса и получить всё необходимое для расчёта. Но один запрос может затрагивать сотни и даже тысячи складов, не считая связанных сущностей. Такое число сетевых вызовов быстро превысит SLA и приведёт к клиентским таймаутам. Сетевые запросы к мастер-системам в нашем случае — непозволительная роскошь, поэтому мы вынуждены держать слепок данных прямо в памяти подов. А значит, появляется новая проблема: как быстро и надёжно доставлять постоянно меняющиеся данные из мастер-систем в оперативную память сотен подов.

    habr.com/ru/companies/ozontech

    #highload #backend #golang #go #проектирование_систем #программирование #высоконагруженные_системы #ozon_tech

  8. От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

    Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходит около 600 000 RPS , а строгий SLA требует ответа в пределах 50 мс. Для расчёта нужно за минимальное время выбрать оптимальный склад с учётом остатков, доступности и других данных, которые хранятся в разных микросервисах и их базах данных. Первое, что приходит на ум, — обратиться к этим сервисам по API во время запроса и получить всё необходимое для расчёта. Но один запрос может затрагивать сотни и даже тысячи складов, не считая связанных сущностей. Такое число сетевых вызовов быстро превысит SLA и приведёт к клиентским таймаутам. Сетевые запросы к мастер-системам в нашем случае — непозволительная роскошь, поэтому мы вынуждены держать слепок данных прямо в памяти подов. А значит, появляется новая проблема: как быстро и надёжно доставлять постоянно меняющиеся данные из мастер-систем в оперативную память сотен подов.

    habr.com/ru/companies/ozontech

    #highload #backend #golang #go #проектирование_систем #программирование #высоконагруженные_системы #ozon_tech

  9. От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

    Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходит около 600 000 RPS , а строгий SLA требует ответа в пределах 50 мс. Для расчёта нужно за минимальное время выбрать оптимальный склад с учётом остатков, доступности и других данных, которые хранятся в разных микросервисах и их базах данных. Первое, что приходит на ум, — обратиться к этим сервисам по API во время запроса и получить всё необходимое для расчёта. Но один запрос может затрагивать сотни и даже тысячи складов, не считая связанных сущностей. Такое число сетевых вызовов быстро превысит SLA и приведёт к клиентским таймаутам. Сетевые запросы к мастер-системам в нашем случае — непозволительная роскошь, поэтому мы вынуждены держать слепок данных прямо в памяти подов. А значит, появляется новая проблема: как быстро и надёжно доставлять постоянно меняющиеся данные из мастер-систем в оперативную память сотен подов.

    habr.com/ru/companies/ozontech

    #highload #backend #golang #go #проектирование_систем #программирование #высоконагруженные_системы #ozon_tech

  10. Как мы настраивали терминалы сбора данных на складах Ozon

    Привет, Хабр! В 2022 году я пришёл в Ozon Tech на позицию специалиста технической поддержки склада и начал разбираться, как настраивать и поддерживать оборудование на ФФ (фулфилмент), огромном складе площадью 70 000 м², где проходят операции от приёмки и хранения товаров до их подготовки к отправке на сортировочные центры. В тот момент всё работало стабильно. На складах использовались терминалы Zebra (ТСД — терминал сбора данных), вендор был на рынке, поддержка оставалась доступной, и никто особенно не задумывался, как всё устроено внутри. После изменения условий работы с вендором нам пришлось глубже разобраться в процессе настройки и поддержки устройств, чтобы сохранить стабильную работу терминалов на объектах. Оказалось, что поддерживать работу десятков тысяч терминалов по всей стране стало задачей с множеством неизвестных. Притом именно через них проходит большая часть складских операций, от приёмки и размещения товара до сборки и отгрузки заказов. Впереди нас ждали несколько лет разборов, ошибок, временных решений и постепенной перестройки всей системы. В какой-то момент казалось, что мы зашли в тупик. Но в итоге справились. Сейчас мы сократили время настройки терминала с 30 до 6 минут, управляем тысячами устройств удалённо и имеем единый лаунчер. В этой статье расскажу, как мы заново выстроили процесс настройки и управления терминалами на складах. Поехали!

    habr.com/ru/companies/ozontech

    #ТСД #android #mdmсистема #mdm #управление_разработкой #терминал_сбора_данных #фулфилмент #техническая_поддержка #ozon_tech

  11. Как мы настраивали терминалы сбора данных на складах Ozon

    Привет, Хабр! В 2022 году я пришёл в Ozon Tech на позицию специалиста технической поддержки склада и начал разбираться, как настраивать и поддерживать оборудование на ФФ (фулфилмент), огромном складе площадью 70 000 м², где проходят операции от приёмки и хранения товаров до их подготовки к отправке на сортировочные центры. В тот момент всё работало стабильно. На складах использовались терминалы Zebra (ТСД — терминал сбора данных), вендор был на рынке, поддержка оставалась доступной, и никто особенно не задумывался, как всё устроено внутри. После изменения условий работы с вендором нам пришлось глубже разобраться в процессе настройки и поддержки устройств, чтобы сохранить стабильную работу терминалов на объектах. Оказалось, что поддерживать работу десятков тысяч терминалов по всей стране стало задачей с множеством неизвестных. Притом именно через них проходит большая часть складских операций, от приёмки и размещения товара до сборки и отгрузки заказов. Впереди нас ждали несколько лет разборов, ошибок, временных решений и постепенной перестройки всей системы. В какой-то момент казалось, что мы зашли в тупик. Но в итоге справились. Сейчас мы сократили время настройки терминала с 30 до 6 минут, управляем тысячами устройств удалённо и имеем единый лаунчер. В этой статье расскажу, как мы заново выстроили процесс настройки и управления терминалами на складах. Поехали!

    habr.com/ru/companies/ozontech

    #ТСД #android #mdmсистема #mdm #управление_разработкой #терминал_сбора_данных #фулфилмент #техническая_поддержка #ozon_tech

  12. Как мы настраивали терминалы сбора данных на складах Ozon

    Привет, Хабр! В 2022 году я пришёл в Ozon Tech на позицию специалиста технической поддержки склада и начал разбираться, как настраивать и поддерживать оборудование на ФФ (фулфилмент), огромном складе площадью 70 000 м², где проходят операции от приёмки и хранения товаров до их подготовки к отправке на сортировочные центры. В тот момент всё работало стабильно. На складах использовались терминалы Zebra (ТСД — терминал сбора данных), вендор был на рынке, поддержка оставалась доступной, и никто особенно не задумывался, как всё устроено внутри. После изменения условий работы с вендором нам пришлось глубже разобраться в процессе настройки и поддержки устройств, чтобы сохранить стабильную работу терминалов на объектах. Оказалось, что поддерживать работу десятков тысяч терминалов по всей стране стало задачей с множеством неизвестных. Притом именно через них проходит большая часть складских операций, от приёмки и размещения товара до сборки и отгрузки заказов. Впереди нас ждали несколько лет разборов, ошибок, временных решений и постепенной перестройки всей системы. В какой-то момент казалось, что мы зашли в тупик. Но в итоге справились. Сейчас мы сократили время настройки терминала с 30 до 6 минут, управляем тысячами устройств удалённо и имеем единый лаунчер. В этой статье расскажу, как мы заново выстроили процесс настройки и управления терминалами на складах. Поехали!

    habr.com/ru/companies/ozontech

    #ТСД #android #mdmсистема #mdm #управление_разработкой #терминал_сбора_данных #фулфилмент #техническая_поддержка #ozon_tech

  13. Безопасность контрагентов с точки зрения ИБ: с чего начать и как выстроить процесс

    Привет, Хабр! Меня зовут Алиса, я методолог информационной безопасности в Ozon. Я занимаюсь построением и улучшением процессов ИБ начиная от регламентов и требований до внедрения практических контролей в работу команд. Один из сложных участков в ИБ — работа с контрагентами. Компании используют внешние сервисы, подрядчиков, аутсорсинг, облака, интеграции и внешнюю разработку. При этом далеко не всегда понятно, кто отвечает за безопасность этих связей и с чего вообще начинать.

    habr.com/ru/companies/ozontech

    #рискменеджмент #договоры #безопасность #информационная_безопасность #риски_бизнеса #риски_иб #учетные_записи #доступ #техническое_задание #ozon_tech

  14. Как я перестал быть руководителем-супергероем и начал строить самостоятельную команду

    Привет, Хабр! Меня зовут Евгений Мазуренко, я руководитель отдела разработки финансового учёта в Ozon. Больше десяти лет управляю командами — маленькими и большими, продуктовыми и аутсорсинговыми. Раньше я искренне верил, что идеальный руководитель — это супергерой. Тот, кто всегда на подхвате, закрывает собой бреши, знает ответы на все вопросы и спасает проект собственным контролем. Я был в центре всего — код-ревью, баги, постоянная стыковка с продуктом. Мои часы «помощи» росли, и именно в этой роли я чувствовал свою необходимость и вклад. А потом увидел обратную сторону. Скорость команды падала, энтузиазм угасал, инициатива стремилась к нулю. Запросы на помощь множились, а способность решать проблемы самостоятельно у команды таяла. Любое, даже самое очевидное решение требовало моего вмешательства. Тогда я осознал: моя «помощь» и была проблемой. Я создал систему зависимостей и оказался не спасательным кругом, а главным тормозом на пути роста команды. Сегодня в статье разберу три вещи, которые помогли мне иначе посмотреть на роль руководителя: как нанимать людей под команду, как давать задачи с понятным смыслом и как помогать так, чтобы не забирать у команды ответственность.

    habr.com/ru/companies/ozontech

    #лидерство_it #управленческие_практики #тимлидство #управление_командой #менеджмент_в_it #найм_разработчиков #развитие_сотрудников #ozon_tech

  15. Как я перестал быть руководителем-супергероем и начал строить самостоятельную команду

    Привет, Хабр! Меня зовут Евгений Мазуренко, я руководитель отдела разработки финансового учёта в Ozon. Больше десяти лет управляю командами — маленькими и большими, продуктовыми и аутсорсинговыми. Раньше я искренне верил, что идеальный руководитель — это супергерой. Тот, кто всегда на подхвате, закрывает собой бреши, знает ответы на все вопросы и спасает проект собственным контролем. Я был в центре всего — код-ревью, баги, постоянная стыковка с продуктом. Мои часы «помощи» росли, и именно в этой роли я чувствовал свою необходимость и вклад. А потом увидел обратную сторону. Скорость команды падала, энтузиазм угасал, инициатива стремилась к нулю. Запросы на помощь множились, а способность решать проблемы самостоятельно у команды таяла. Любое, даже самое очевидное решение требовало моего вмешательства. Тогда я осознал: моя «помощь» и была проблемой. Я создал систему зависимостей и оказался не спасательным кругом, а главным тормозом на пути роста команды. Сегодня в статье разберу три вещи, которые помогли мне иначе посмотреть на роль руководителя: как нанимать людей под команду, как давать задачи с понятным смыслом и как помогать так, чтобы не забирать у команды ответственность.

    habr.com/ru/companies/ozontech

    #лидерство_it #управленческие_практики #тимлидство #управление_командой #менеджмент_в_it #найм_разработчиков #развитие_сотрудников #ozon_tech

  16. Как я перестал быть руководителем-супергероем и начал строить самостоятельную команду

    Привет, Хабр! Меня зовут Евгений Мазуренко, я руководитель отдела разработки финансового учёта в Ozon. Больше десяти лет управляю командами — маленькими и большими, продуктовыми и аутсорсинговыми. Раньше я искренне верил, что идеальный руководитель — это супергерой. Тот, кто всегда на подхвате, закрывает собой бреши, знает ответы на все вопросы и спасает проект собственным контролем. Я был в центре всего — код-ревью, баги, постоянная стыковка с продуктом. Мои часы «помощи» росли, и именно в этой роли я чувствовал свою необходимость и вклад. А потом увидел обратную сторону. Скорость команды падала, энтузиазм угасал, инициатива стремилась к нулю. Запросы на помощь множились, а способность решать проблемы самостоятельно у команды таяла. Любое, даже самое очевидное решение требовало моего вмешательства. Тогда я осознал: моя «помощь» и была проблемой. Я создал систему зависимостей и оказался не спасательным кругом, а главным тормозом на пути роста команды. Сегодня в статье разберу три вещи, которые помогли мне иначе посмотреть на роль руководителя: как нанимать людей под команду, как давать задачи с понятным смыслом и как помогать так, чтобы не забирать у команды ответственность.

    habr.com/ru/companies/ozontech

    #лидерство_it #управленческие_практики #тимлидство #управление_командой #менеджмент_в_it #найм_разработчиков #развитие_сотрудников #ozon_tech

  17. Заменит ли умная строка традиционные графические интерфейсы? История смены парадигм в интерфейсостроении

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

    habr.com/ru/companies/ozontech

    #история #прогнозы #интерфейсы #интерфейсы_и_юзабилити #ретрокомпьютинг #ретро #человекомашинное_взаимодействие #человек_vs_компьютер #дизайн_интерфейсов #ozon_tech

  18. Заменит ли умная строка традиционные графические интерфейсы? История смены парадигм в интерфейсостроении

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

    habr.com/ru/companies/ozontech

    #история #прогнозы #интерфейсы #интерфейсы_и_юзабилити #ретрокомпьютинг #ретро #человекомашинное_взаимодействие #человек_vs_компьютер #дизайн_интерфейсов #ozon_tech

  19. Заменит ли умная строка традиционные графические интерфейсы? История смены парадигм в интерфейсостроении

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

    habr.com/ru/companies/ozontech

    #история #прогнозы #интерфейсы #интерфейсы_и_юзабилити #ретрокомпьютинг #ретро #человекомашинное_взаимодействие #человек_vs_компьютер #дизайн_интерфейсов #ozon_tech

  20. Как мы ускорили расчёт факторов ранжирования в поиске Ozon с помощью динамической компиляции

    Всем привет! Меня зовут Петя Портнов, я работаю в Ozon ведущим разработчиком в команде среднего поиска — слоя, который ранжирует поисковую выдачу. Представьте, что вы вводите запрос в поисковую строку маркетплейса. За этим простым действием скрывается сложный поисковый пайплайн: миллионы товаров фильтруются, ранжируются и сортируются по релевантности. Но как именно система решает, что показать первым? В основе этого решения лежат вычисления, среди которых — сотни разнообразных формул, учитывающих цену, рейтинг, популярность, персонализацию и другие факторы. По мере развития системы таких формул становится всё больше, а сами они усложняются. В какой-то момент вычисления превращаются в узкое место: начинают потреблять значительную долю CPU, создают множество промежуточных объектов — и так для каждого поискового запроса. Возникает вопрос: как снизить стоимость таких вычислений в JVM? В этой статье я расскажу, что сделали мы, чтобы снизить нагрузку на систему: как заменили интерпретирующий движок формул на динамический компилятор, выполняющий построение эффективного байт-кода, отлично векторизующегося JIT-компилятором. Это текстовая версия доклада с Joker 2025 с дополнениями, которые не вошли в выступление или появились в проекте уже после конференции.

    habr.com/ru/companies/ozontech

    #java #поиск #оптимизация_производительности #компиляция #байткод #jvm #ozon_tech

  21. Автотестирование пайплайнов в GitLab CI: наш опыт и практика

    Когда речь заходит про автотесты, первыми на ум приходят проверки для UI, API или для мобильных устройств. Однако автотесты нужны не только для проверки пользовательских сценариев. Они могут решать и менее очевидные, но не менее важные задачи, например проверять работу пайплайнов. Если одни и те же пайплайны используют сотни сервисов и библиотек, любая ошибка в них быстро выходит за пределы одного проекта. У многих команд одновременно могут сломаться сборки, релизы и привычный процесс разработки. В нашем случае такие пайплайны работали примерно для 700 сервисов и более 200 библиотечных репозиториев. Чтобы гарантировать работоспособность пайплайнов, мы пришли к идее покрытия их автотестами. В статье я расскажу, как мы в Ozon покрывали тестами работу пайплайнов в GitLab CI, какие требования нужно было учесть и как в итоге были устроены end-to-end-тесты для таких сценариев.

    habr.com/ru/companies/ozontech

    #тестирование #автоматизация #cicd #gitlab #пайплайны #автотестирование #pipeline #ozon_tech

  22. «Свайп вправо» — построй свою стратегию дизайна

    Привет, я Таня — работаю ведущим продуктовым дизайнером опыта покупателя в Ozon. Среди моих продуктов «Избранное», «Вишлисты», мини-апп «Доставки посылок», а в прошлом я дизайнила «Карточку товара». Год назад я ротировалась в команду «Корзины», потому что хотела для себя новых вызовов. На примере редизайна «Корзины», я хочу показать, как сегодня меняется роль дизайнера в продукте, чем дизайн-стратегия отличается от просто красивого концепта, почему такие изменения невозможно делать в одиночку.

    habr.com/ru/companies/ozontech

    #продуктовый_дизайн #стратегия_продукта #концепты #дизайнстратегия #ozon_tech

  23. Тайны рекламного аукциона в Ozon и как мы приручали VCG

    Привет! Меня зовут Дмитрий, я ведущий разработчик в команде рекламного рантайма. Наша команда, как вы уже могли догадаться, занимается разработкой аукционов в поисковой рекламе Ozon. В этой статье я хочу познакомить вас с механикой аукционов и рассказать, как мы делаем это в Ozon. Сначала мы разберёмся, что такое рекламный аукцион, что он имеет общего с аукционом в обычном понимании и как используется в контексте поисковой рекламы. А ещё подробно разберём аукцион типа VCG (аукцион Викри — Кларка — Гровса), вместе выведем формулы для него и посмотрим, какие результаты мы получили на практике.

    habr.com/ru/companies/ozontech

    #ozon #поисковая_реклама #рекламный_аукцион #ecommerce #ozon_tech #поиск

  24. Не самый сильный разработчик в комнате: как из QA я стала тимлидом разработки

    Всем привет! Меня зовут Юлия Новикова, и мае 2025 года я стала Team Lead группы фронтенд-разработки в Ozon. В моей команде сейчас 5 разработчиков и 2 тестировщика, и мы создаём фронтенд для админок, которые управляют работой складов, РЦ (распределительный центр) и дарксторов. Но путь мой сюда был не самым тривиальным — до этого я была QA Lead, а не разработчиком. А началось всё с того, что я начала думать: а что дальше? Кем я могу стать, если ещё вырасту? Вакансий руководителей тестирования, а особенно руководителей отделов тестирования, не так много, а хотелось больше влияния, больше развития. И я решила прыгнуть вбок и сменить профессию: стать тимлидом разработки. Расскажу, как это было и чего стоит ожидать тем, кто задумывается о таком же повороте.

    habr.com/ru/companies/ozontech

    #frontend #teamlead #qa_lead #soft_skills #управление_командой #ozon_tech

  25. Не самый сильный разработчик в комнате: как из QA я стала тимлидом разработки

    Всем привет! Меня зовут Юлия Новикова, и мае 2025 года я стала Team Lead группы фронтенд-разработки в Ozon. В моей команде сейчас 5 разработчиков и 2 тестировщика, и мы создаём фронтенд для админок, которые управляют работой складов, РЦ (распределительный центр) и дарксторов. Но путь мой сюда был не самым тривиальным — до этого я была QA Lead, а не разработчиком. А началось всё с того, что я начала думать: а что дальше? Кем я могу стать, если ещё вырасту? Вакансий руководителей тестирования, а особенно руководителей отделов тестирования, не так много, а хотелось больше влияния, больше развития. И я решила прыгнуть вбок и сменить профессию: стать тимлидом разработки. Расскажу, как это было и чего стоит ожидать тем, кто задумывается о таком же повороте.

    habr.com/ru/companies/ozontech

    #frontend #teamlead #qa_lead #soft_skills #управление_командой #ozon_tech

  26. Стоит ли ходить на стажировки QA? Мой опыт в Ozon Tech от отклика и до нашей эры

    Привет, Хабр! Я Маша, младший инженер по тестированию в Ozon Tech, а совсем недавно — стажёр. Сейчас я опишу, как здесь оказалась и что будет с вами происходить, если вы начнёте карьерный путь в Ozon Tech (но это не точно, у каждого из нас свой путь и команда!). Во время обучения тестированию мне хотелось задать множество вопросов какому-нибудь стажёру, но друзей в IT совсем не было, поэтому я попыталась дать ответы на главные вопросы новичков на основе собственного опыта.

    habr.com/ru/companies/ozontech

    #стажировка_в_it #тестирование #ozon_tech #собеседование_в_it #обучение_тестированию #бадди #процессы #бигтех

  27. Query Prediction, или как мы отказались от ANN и полюбили обратный индекс

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

    habr.com/ru/companies/ozontech

    #поиск #machine_learning #deep_learning #big_data #nlp #ozon_tech

  28. Миссия выполнима: как мы добились актуальности двух тысяч кешей

    Привет! Меня зовут Влад, и я разрабатываю сердце витрины Ozon — сервис product-facade. Пару лет назад мы уже делились нашим опытом в этой статье , но с тех пор многое изменилось: выросли нагрузки, появились новые фичи и оптимизации, система стала сложнее и надёжнее. Прежде чем перейти непосредственно к актуальности кешей, давайте разберёмся, почему это так важно. Представьте: вы добавляете товар в корзину, но что-то пошло не так, и покупку совершить не удаётся — склад больше не возит в ваш ПВЗ. Даже 0.1% таких ошибок — это тысячи недовольных пользователей каждую секунду. А когда что-то массово меняется, разработчики вынуждены расследовать инцидент, чтобы понять, что проблема была всего лишь в устаревших кешах.

    habr.com/ru/companies/ozontech

    #Redis #Valkey #кэширование #инвалидация_кеша #инвалидация_кэша #архитектура_системы #ozon_tech

  29. Миссия выполнима: как мы добились актуальности двух тысяч кешей

    Привет! Меня зовут Влад, и я разрабатываю сердце витрины Ozon — сервис product-facade. Пару лет назад мы уже делились нашим опытом в этой статье , но с тех пор многое изменилось: выросли нагрузки, появились новые фичи и оптимизации, система стала сложнее и надёжнее. Прежде чем перейти непосредственно к актуальности кешей, давайте разберёмся, почему это так важно. Представьте: вы добавляете товар в корзину, но что-то пошло не так, и покупку совершить не удаётся — склад больше не возит в ваш ПВЗ. Даже 0.1% таких ошибок — это тысячи недовольных пользователей каждую секунду. А когда что-то массово меняется, разработчики вынуждены расследовать инцидент, чтобы понять, что проблема была всего лишь в устаревших кешах.

    habr.com/ru/companies/ozontech

    #Redis #Valkey #кэширование #инвалидация_кеша #инвалидация_кэша #архитектура_системы #ozon_tech

  30. Миссия выполнима: как мы добились актуальности двух тысяч кешей

    Привет! Меня зовут Влад, и я разрабатываю сердце витрины Ozon — сервис product-facade. Пару лет назад мы уже делились нашим опытом в этой статье , но с тех пор многое изменилось: выросли нагрузки, появились новые фичи и оптимизации, система стала сложнее и надёжнее. Прежде чем перейти непосредственно к актуальности кешей, давайте разберёмся, почему это так важно. Представьте: вы добавляете товар в корзину, но что-то пошло не так, и покупку совершить не удаётся — склад больше не возит в ваш ПВЗ. Даже 0.1% таких ошибок — это тысячи недовольных пользователей каждую секунду. А когда что-то массово меняется, разработчики вынуждены расследовать инцидент, чтобы понять, что проблема была всего лишь в устаревших кешах.

    habr.com/ru/companies/ozontech

    #Redis #Valkey #кэширование #инвалидация_кеша #инвалидация_кэша #архитектура_системы #ozon_tech

  31. Как устроен Vulnerability Management в Ozon: внутренняя кухня киберзащиты

    Всем привет! Меня зовут Андрей Иблеминов, я инженер группы управления уязвимостями в Ozon, в сфере информационной безопасности работаю более 5 лет. В данной статье я поделюсь своим личным опытом (и опытом моей команды) решения задач, связанных со своевременным обнаружением и устранением уязвимостей в ИТ-инфраструктуре Ozon.

    habr.com/ru/companies/ozontech

    #vulnerability_management #управление_уязвимостями #сканирование_уязвимостей #ozon_tech #ozon

  32. Как устроен Vulnerability Management в Ozon: внутренняя кухня киберзащиты

    Всем привет! Меня зовут Андрей Иблеминов, я инженер группы управления уязвимостями в Ozon, в сфере информационной безопасности работаю более 5 лет. В данной статье я поделюсь своим личным опытом (и опытом моей команды) решения задач, связанных со своевременным обнаружением и устранением уязвимостей в ИТ-инфраструктуре Ozon.

    habr.com/ru/companies/ozontech

    #vulnerability_management #управление_уязвимостями #сканирование_уязвимостей #ozon_tech #ozon

  33. Как устроен Vulnerability Management в Ozon: внутренняя кухня киберзащиты

    Всем привет! Меня зовут Андрей Иблеминов, я инженер группы управления уязвимостями в Ozon, в сфере информационной безопасности работаю более 5 лет. В данной статье я поделюсь своим личным опытом (и опытом моей команды) решения задач, связанных со своевременным обнаружением и устранением уязвимостей в ИТ-инфраструктуре Ozon.

    habr.com/ru/companies/ozontech

    #vulnerability_management #управление_уязвимостями #сканирование_уязвимостей #ozon_tech #ozon

  34. Как, имея более 200 методов HTTP, смэтчить их с тем, в какие сервисы они ходят

    Привет, Хабр! На связи команда Seller API, а именно её тимлид Саша Валов и старший разработчик Никита Денисенко. В этой статье мы разберём одну из проблем большого API и расскажем, как мы её решили. Вступление Seller API — это продукт, предоставляющий программный интерфейс для работы с маркетплейсом Ozon. Он позволяет системам продавца и Ozon обмениваться информацией. Seller API насчитывает более 200 методов. Эти методы удовлетворяют множество бизнес-потребностей и предоставляют доступ к широкому спектру сервисов Ozon. В основном методы API проксируют запросы к этим сервисам. Проблема Нашей команде необходимо оперативно давать ответы на вопросы а-ля «В какие сервисы мы, разработчики команды Seller API, ходим под капотом этой API-ручки?» или, наоборот, «В контексте каких API-ручек мы ходим в конкретный сервис или даже метод сервиса?». Эти вопросы с завидной регулярностью поступают от ребят из технической поддержки, которым необходимо расследовать неполадку, и ребят из продукта, которые систематизируют требования к новым функциональностям или к рефакторингу старых. Чтобы ответить на любой из этих вопросов, нам чаще всего приходится смотреть код. Дежурный разработчик сначала идёт в proto-файлы, описывающие контракт API (да, мы в Ozon описываем и внешние, и внутренние API с помощью proto-файлов). Погружаясь глубже вплоть до кода клиентов нижележащих сервисов, он находит нужные методы, в которые мы проксируем запросы. И, наоборот, из кода клиента необходимого сервиса, поднимаясь по слоям, разработчик понимает, где и как используется метод нижележащего сервиса.

    habr.com/ru/companies/ozontech

    #grpc #grpcgateway #golang #ozon_seller_api #ozon_tech

  35. Как стартовать продукты под крылом больших корпораций

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

    habr.com/ru/companies/ozontech

    #ozon #стартап #product #product_management #ozon_tech

  36. Как мы законтрибьютили целую строчку в HashiCorp Vault

    Привет! Меня зовут Пётр Жучков, я руководитель группы хранения секретов и конфигураций в отделе Message Bus в Ozon. Мы отвечаем за поддержку и развитие системы хранения и использование секретов, активно сотрудничаем с ребятами из департамента информационной безопасности, чтобы все сервисы могли безопасно работать с секретами. Основной наш инструмент для управления секретами — Vault . Он отличается хорошей функциональностью, а также имеет подробную документацию, благодаря которой можно быстро начать его использовать. Конечно, запустить Vault и подключить к своему сервису — это совсем не то же самое, что надёжно и безопасно предоставить платформенный доступ более 6000 сервисов и других инфраструктурных систем. Для нас крайне важно отдавать данные быстро и хранить безопасно. Если вы хотите безопасно хранить секреты или просто погрузиться в gRPC и Go, то, думаю, вам будет интересно и полезно не повторять наши ошибки. Далее я расскажу историю о том, как во время стандартной процедуры обслуживания Vault мы смогли положить его и потратили много времени и нервных клеток, чтобы вернуть в рабочее состояние.

    habr.com/ru/companies/ozontech

    #vault #ozon #ozon_tech #security #go #grpc #storage

  37. Koin: как сделать свой DI за 10 минут

    Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. В этой статье мы реализуем свой механизм, на котором построен Koin. Тем самым мы пройдём путь, который проходили его авторы при решении проблемы построения собственного DI. Эта статья будет полезна тем, кто использует Koin в своих приложениях, и тем, кто хочет сделать свой простой DI. Ведь только понимание того, как что-то устроено, поможет создавать новые решения, учитывая при этом опыт прошлых разработок, и модифицировать существующие решения без трагических последствий. Дополнительная (но от того не менее важная) цель статьи — показать, что базовый механизм, на котором построен Koin, не такой уж и страшный :) Тестовый текст

    habr.com/ru/companies/ozontech

    #koin #android #development #kotlin #servicelocator #ozon #ozon_tech

  38. В вашем SIEM Detection as a Code есть? Нет? Сейчас будет

    Привет! Меня зовут Кермен, я — аналитик на второй линии SOC. Наша команда исследует данные от инфраструктуры и сервисов Ozon для выявления нелегитимной активности: от нарушения политик информационной безопасности до целенаправленных атак. Каждую минуту к нам поступают миллионы событий — просматривать их вручную и в режиме реального времени невозможно. Вот почему мы автоматизируем часть своей работы с помощью правил корреляции — запускаемых по расписанию запросов, которые оповещают нас при выполнении условия: был найден индикатор компрометации, произошла последовательность действий или достигнут порог в количестве событий. Иногда информации в событиях нам недостаточно, поэтому мы обогащаем их дополнительными признаками с помощью вспомогательных объектов: таблиц, макросов, моделей машинного обучения. Нам захотелось навести порядок, поэтому позаимствовали опыт разработчиков: сделали новый формат хранения, добавили больше метаинформации, настроили CI/CD, и теперь у наших объектов есть свой жизненный цикл, включающий в себя этапы разработки, тестирования, перенос в продакшн, пересмотр и отключение. Для этого на свет появился фреймворк для разработки и управления контентом — catzone или, как его чаще называют, котозон. В статье расскажу, как мы к нему пришли, из чего он состоит и как сейчас упрощает нашу жизнь.

    habr.com/ru/companies/ozontech

    #soc #siem #analytics #ozon_tech #ozon #cybersecurity #информационная_безопасность #иб

  39. Как делать простые анимированные онбординги в Lottie без After Effects

    Привет! Меня зовут Михаил Мурзак, я продуктовый дизайнер в Ozon Seller (сайт и приложение продавца). Время от времени мы делаем анимированные онбординги крупных фич в мобильном приложении и долгое время использовали для этих целей Adobe After Effects с плагином Bodymovin (для экспорта в Lottie), но каждый раз для меня это было мучением, поэтому я решил пересесть на официальный клиент Lottie и написал этот гайд для коллег. Теперь, когда Adobe не продлевает лицензии, этот гайд стал ещё более актуальным, и я решил опубликовать его тут.

    habr.com/ru/companies/ozontech

    #lottie #aftereffects #ozon #ozon_tech #animation #design #анимация

  40. Vue 3 в деле: Как мы обновили большой внутренний сервис и что из этого вышло

    Привет, Хабр! Меня зовут Егор Прокопьев, и я фронтенд-разработчик в Ozon. Третья версия полюбившегося многими фреймворка Vue вышла уже давно, и большинство использующих его произвели обновление до новой версии. Но всегда будут такие, как наша команда, кто откладывал этот переход в дальний ящик техдолга — ведь есть более приоритетные задачи! Однако рано или поздно этот день настаёт, и вот и для нас он пришёл. В этой статье я хочу рассказать, как мы переходили на новую версию при том, что сервис является достаточно большим и очень важным для пользователей. Но обо всём по порядку.

    habr.com/ru/companies/ozontech

    #vue3 #nuxt #ozon #ozon_tech #frontend #frontendразработка #pinia

  41. Vue 3 в деле: Как мы обновили большой внутренний сервис и что из этого вышло

    Привет, Хабр! Меня зовут Егор Прокопьев, и я фронтенд-разработчик в Ozon. Третья версия полюбившегося многими фреймворка Vue вышла уже давно, и большинство использующих его произвели обновление до новой версии. Но всегда будут такие, как наша команда, кто откладывал этот переход в дальний ящик техдолга — ведь есть более приоритетные задачи! Однако рано или поздно этот день настаёт, и вот и для нас он пришёл. В этой статье я хочу рассказать, как мы переходили на новую версию при том, что сервис является достаточно большим и очень важным для пользователей. Но обо всём по порядку.

    habr.com/ru/companies/ozontech

    #vue3 #nuxt #ozon #ozon_tech #frontend #frontendразработка #pinia

  42. Vue 3 в деле: Как мы обновили большой внутренний сервис и что из этого вышло

    Привет, Хабр! Меня зовут Егор Прокопьев, и я фронтенд-разработчик в Ozon. Третья версия полюбившегося многими фреймворка Vue вышла уже давно, и большинство использующих его произвели обновление до новой версии. Но всегда будут такие, как наша команда, кто откладывал этот переход в дальний ящик техдолга — ведь есть более приоритетные задачи! Однако рано или поздно этот день настаёт, и вот и для нас он пришёл. В этой статье я хочу рассказать, как мы переходили на новую версию при том, что сервис является достаточно большим и очень важным для пользователей. Но обо всём по порядку.

    habr.com/ru/companies/ozontech

    #vue3 #nuxt #ozon #ozon_tech #frontend #frontendразработка #pinia

  43. Отделяй и делегируй или Как безболезненно разгрузить менеджера

    Всем привет! Меня зовут Ваня Назаров, я работаю менеджером проектов в Ozon Tech. Одна из основных моих обязанностей — поддержание функции руководителя департамента одного из направлений работы всего Ozon. В этой статье я хотел бы ответить на вопрос: на что нужно обратить внимание руководителю при передаче отдельной функции исполнителю? Или всё достаточно просто, и мы зря здесь сегодня собрались? В термин «функция» я закладываю смысл какой-либо прямой деятельности руководителя. Давайте вместе попробуем разобраться и понять, есть ли подводные камни в этом вопросе и, если есть, то какие.

    habr.com/ru/companies/ozontech

    #ozon #менеджмент #ozon_tech #делегирование #теория_менеджмента #управление_проектами

  44. Собираем данные из сотни микросервисов, или Как мы разобрали Ozon на кубики, а потом собрали заново

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

    habr.com/ru/companies/ozontech

    #ozon #ozon_tech #bdui #go #backend #ui

  45. Место, где рождаются чат-боты: как мы пересобрали конструктор с нуля

    Привет! Меня зовут Анастасия. Я старший продуктовый дизайнер внутренних сервисов в Ozon Tech. Чтобы быстро решать вопросы клиентов Ozon, мы используем чат-ботов и постоянно их улучшаем. Такие боты встроены в клиентский чат, чат с продавцами, чат Ozon Travel и другие. В этой статье я расскажу о том, как мы с командой переработали конструктор, расширили круг его пользователей, с какими проблемами столкнулись и как решали их в условиях ограниченного времени.

    habr.com/ru/companies/ozontech

    #дизайн #ozon_tech #ozon #ux/ui #боты #чатботы #рефакторинг

  46. Настольная инструкция лида: читать её, конечно, никто не собирался

    Привет! Наш отдел разработки в Ozon Tech часто сталкивается с проблемой онбординга руководителей команд, ведь в каждой компании работа тимлида имеет свою специфику и не всегда позволяет ощутить остроту всех граней управления группой разработчиков. Статья представляет собой настольную инструкцию для лида, которую можно изучать самому или адаптировать для своей команды тимлидов. Меня зовут Арманд, я руководитель отдела Ozon Crowd. Наш основной продукт — это краудсорс-система Ozon Profit . Изначально я собирал материал для приватной страницы онбординга руководителя в нашу команду, но получилось выделить общие моменты (убрать всю секретную информацию) и составить цельную картину того, с чем может столкнуться начинающий менеджер. Этим я и хочу поделиться с сообществом. Материал статьи не претендует на объективность. Все упомянутые истории происходили в моей практике или в практике моих сотрудников, совпадения не случайны. Без лишних предисловий, начнём!

    habr.com/ru/companies/ozontech

    #ozon #ozon_tech #teamlead #управление #тимлид #тимлидство #команда

  47. Гексы, Uber, или Учим автотесты ориентироваться на карте

    Всем привет! Меня зовут Люба, и я инженер по тестированию в команде Ozon Partners Platform . Наша команда занимается поддержкой и развитием системы, предназначенной для развития сети пунктов выдачи Ozon. Одним из компонентов этой системы является Открытая карта . Хочу рассказать, как мы научили автотесты находить на ней точки, подходящие для открытия нового ПВЗ.

    habr.com/ru/companies/ozontech

    #python #ozon #ozon_tech #uber #h3 #автотесты

  48. Как мы выбираем задания на отбор Route 256: подход и разбор задач

    Однажды мы решили, что грамотных инженеров эффективнее всего растить самим. Так 3 года назад родился Route 256 — курсы Ozon для разработчиков и тестировщиков уровней junior и middle. Во время курса ведущие специалисты Ozon погружают в индустрию e-com, знакомят с актуальным стеком и бизнес-задачами. Самые успешные выпускники получают оффер в команду Ozon. В статье рассказали, почему для отбора мы используем алгоритмы, и показали разбор задач с контеста.

    habr.com/ru/companies/ozontech

    #задачи #алгоритмы #курсы #алгоритмические_задачи #ozon #ozon_tech #route_256 #route

  49. Отрицание, гнев, торг: как дизайну и разработке найти общий язык

    Привет, Хабр! Я Женя, ведущий продуктовый дизайнер в Ozon, и за 10+ лет в дизайне повидала всякого: ошибок в макетах (своих и чужих), недостаточно полных спецификаций, неучтённых корнер-кейсов, сотни сообщений в тредах с разработкой и переносы релиза из-за досадных багов. Стало понятно: спроектировать макеты в Figma может каждый, но докатить их до прода так, как было задумано, — целое искусство, в котором дизайн и разработка должны идти рука об руку. Понимают ли они друг друга? Я запустила анонимный опрос в командах: что радует и что раздражает разработчиков в макетах дизайнеров — и наоборот. И в этой статье хочу порефлексировать над его результатами. Заодно поделюсь полезными практиками, которые помогут наладить взаимодействие дизайна и разработки: чек-лист для подготовки макетов, поиск корнер-кейсов, спецификация, груминг, саппорт, дизайн-ревью и прочие заклинания. Поэтому статья будет полезна не только дизайнерам, но и разработчикам, QA-инженерам, продактам и всем, кто заинтересован в качестве конечного решения на проде. Осторожно, количество мемов в статье зашкаливает

    habr.com/ru/companies/ozontech

    #ozon_tech #дизайнпроцесс #дизайнревью #управление_продуктом #качество_продукта #продуктовый_дизайн #дизайн_и_разработка_интерфейсов #ux/ui #ozon_design #мобильная_разработка

  50. Подсветка элементов онбординга. Spotlight onboarding / Highlight element. SwiftUI iOS15+

    Всем привет! Меня зовут Саша, я iOS-разработчик компании Ozon. Я занимаюсь разработкой и развитием мобильного приложения продавца. Сегодня хотел бы поделиться опытом нашей команды по кастомизации онбординга для вашего мобильного приложения. Представьте, ваша команда несколько недель разрабатывает фичу, которая ну очень упростит жизнь пользователю. Вы уже готовы её выкатить, но возникают вопросы: - Как представить новую фичу пользователю? - Как сделать так, чтобы пользователь не пропустил добавленный функционал? - Как повысить количество взаимодействий с новым функционалом? Также возникает вопрос упущенного этапа продажи новой фичи — подача обновления пользователю. Наш опыт в Ozon показывает, что отличным решением по информированию пользователя о новом функционале в мобильном приложении является онбординг. Его реализацию в нашем исполнении я и хотел бы сегодня рассмотреть в данной статье.

    habr.com/ru/companies/ozontech

    #swiftui #onbording #ozon #ozon_tech #swift #ios #mobile #highlight #tipkit #spotlight