This media is not supported in your browser
VIEW IN TELEGRAM
Вам посылка. В ней — новые выпуски подкастов с участием наших коллег 🎧
🔵 Евгений Пак, руководитель отдела разработки инструментов
A/B-тестирования и стендов метрик, в подкасте Ozon Data рассказывал об эволюции A/B-тестирования в бигтехах: культуре экспериментов, масштабировании и автоматизации.
➡ ️Слушать
🔵 Никита Зуянов, старший разработчик пользовательских интерфейсов, отстаивал сторону Vue в подкасте OR: React vs Vue.
➡ ️Смотреть
🔵 Кирилл Тихомиров, руководитель группы разработки мониторинга цен, участвовал в панельной дискуссии VK JT Meetup и рассказывал про ИИ в разработке.
➡ ️Смотреть
🔵 Владимир Витковский, руководитель департамента SRE, обсуждал на круглом столе на Observability Conf, где заканчивается кастомайз и начинается безумие.
➡ ️Смотреть
🎁 Бонус: два выпуска про спорт и IT
🔵 Павел Щедухин, руководитель направления разработки мобильных приложений, рассказывал, как спорт помогает современному лидеру драйвить себя и команду в подкасте «Дело в людях».
➡ ️Смотреть
🔵 Дмитрий Непомнящий, руководитель отдела разработки возвратной логистики, проводил параллели между спортивными и IT-командами в подкасте «Едим слона целиком».
➡ ️Смотреть
#ozontech_podcast
A/B-тестирования и стендов метрик, в подкасте Ozon Data рассказывал об эволюции A/B-тестирования в бигтехах: культуре экспериментов, масштабировании и автоматизации.
#ozontech_podcast
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍13❤9 9
Ответы на эти вопросы вы найдёте в записи
А ещё по ссылке
#ozontech_meetup #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13❤9👍6🗿2
Используем плагин GFT в связке с ИИ иии… ускоряем разработку 🕶️
Привет! Это Никита Скворцов, старший Android-разработчик группы «Монетизация». Однажды мы в команде решили добавить в шаблон GFT файл с предзаполненным промптом для ИИ. Так мы доработали созданные GFT пустые файлы до практически полноценного функционала.
🔩 Наш файл с промптом — это набор из 6 инструкций для ИИ с чётким указанием, откуда брать данные и общие классы, чтобы минимизировать ошибки:
🟢 проверка на наличие или добавление зависимостей в модуль с общими компонентами;
🟢 валидация корректности сетевых и UI-моделей для ИИ;
🟢 изменение и дополнение маппера по шаблону;
🟢 создание моковых данных для виджета;
🟢 внесение виджета и добавление импортов для него в общий реестр;
🟢 удаление файла с промптом.
Запуск: скармливаем файл в любой плагин внутри Android Studio. Я пользуюсь Cline, также удобно использовать Continue.
Верификация: заранее переводим ИИ в режим планирования. Затем проверяем его корректность и соответствие нашим ожиданиям: какие действия ИИ собирается совершить, названия моделей, наполнение маппера. Если план нам подходит, переводим в режим действия и ждём, когда код сгенерируется.
Бонусы:
↪️ промпт кастомизируется под конкретный виджет;
↪️ шаблонизатор GFT позволяет добавлять названия файлов или пакетов через небольшой UI внутри Android Studio;
↪️ шаблон промпта полностью настроен, чтобы сгенерировать сетевые, UI-модели и мапперы для них;
↪️ в промпте есть указания, откуда брать общие мапперы (некоторые элементы BDUI у нас переиспользуются);
↪️ шаблон подключает виджет, регистрирует зависимость и создаёт пустой preview и мок для виджета.
⏩ Что остаётся разработчику? Провалидировать корректность полученных классов и сверстать UI. Также мы актуализируем таблицу с сопоставлениями общих компонентов внутри нашего BDUI.
С применением этого промпта, по моим наблюдениям, мы стали разрабатывать виджеты примерно в два раза быстрее. А некоторые из сгенерированных виджетов, кстати, уже отображаются нашим селлерам👌
#ozontech_experts #mobiledev #android
GFT (Group File Template) — плагин для создания группы файлов в Android Studio. Чаще всего используется для генерации boilerplate-кода, чтобы ускорить разработку.
Привет! Это Никита Скворцов, старший Android-разработчик группы «Монетизация». Однажды мы в команде решили добавить в шаблон GFT файл с предзаполненным промптом для ИИ. Так мы доработали созданные GFT пустые файлы до практически полноценного функционала.
Запуск: скармливаем файл в любой плагин внутри Android Studio. Я пользуюсь Cline, также удобно использовать Continue.
Верификация: заранее переводим ИИ в режим планирования. Затем проверяем его корректность и соответствие нашим ожиданиям: какие действия ИИ собирается совершить, названия моделей, наполнение маппера. Если план нам подходит, переводим в режим действия и ждём, когда код сгенерируется.
Бонусы:
С применением этого промпта, по моим наблюдениям, мы стали разрабатывать виджеты примерно в два раза быстрее. А некоторые из сгенерированных виджетов, кстати, уже отображаются нашим селлерам
#ozontech_experts #mobiledev #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤16❤🔥11👍4🗿4👏1
Это последнее предупреждение: 17 июня в 19:00 мы встречаемся на CyberSec митапеВы ещё успеваете зарегистрироваться
В программе 4 доклада на базе наших лучших практик: о надёжном удалённом доступе, безопасности рабочих станций, обработке потока событий в SOC и развитии внутренней CTF-культуры.
А ещё Cyber Match — быстрые знакомства с командами для тех, кто задумывается о карьере в нашем департаменте ИБ.
Полезный вечер среды, если в трёх словах
#ozontech_event #cybersec
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍9🔥7❤6 3🗿2
Что будет, если завтра из вашей команды уйдёт Саня?
Тот самый коллега, который знает, почему полгода назад приняли спорное решение. Помнит все договорённости с соседними командами. Может сходу ответить, где искать результаты тестов, когда выйдет релиз и что рассказать новичку.
❕ Такие знания часто хранятся не в документах, а в головах отдельных людей. Проблемы начинаются, когда этот человек уходит в отпуск, меняет команду или увольняется.
Тимлид Екатерина Чинкова выделяет четыре проблемы, которые чаще всего встречаются в командах.
[
Проблема обычно не в количестве документов, а в том, как с ними работают.
Кто отвечает за обновление? Где хранится информация? Как она попадает в базу знаний? Кто её читает?
Если у вас есть ответы на эти вопросы, знания не зависят от конкретных людей👌
#ozontech_experts #документация
Тот самый коллега, который знает, почему полгода назад приняли спорное решение. Помнит все договорённости с соседними командами. Может сходу ответить, где искать результаты тестов, когда выйдет релиз и что рассказать новичку.
Тимлид Екатерина Чинкова выделяет четыре проблемы, которые чаще всего встречаются в командах.
[
на этом моменте вы листаете карточки, а затем дочитываете пост]Проблема обычно не в количестве документов, а в том, как с ними работают.
Кто отвечает за обновление? Где хранится информация? Как она попадает в базу знаний? Кто её читает?
Если у вас есть ответы на эти вопросы, знания не зависят от конкретных людей
#ozontech_experts #документация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22 12❤🔥9👍5❤3🤣2
Как покрыть автотестами работу пайплайнов GitLab CI? Делимся опытом и рабочим подходом.
Привет, это Олег Иванов, ведущий инженер по тестированию Frontend-платформы. Мы с командой создаём инструменты для фронтенд-разработчиков Ozon и отвечаем за пайплайны для проектов, построенных на платформенных решениях.
Для автотестирования этих пайплайнов мы собрали подход, который ускорил проверки в 10 раз. Подробнее о нём я рассказываю в статье.
Вы узнаете:
🔵 как организовать тестирование пайплайнов, когда зона ответственности затрагивает сразу несколько команд,
🔵 как сделать тесты стабильными и лёгкими в отладке.
Жду вас в статье и в комментариях😀
#ozontech_habr #QA
Привет, это Олег Иванов, ведущий инженер по тестированию Frontend-платформы. Мы с командой создаём инструменты для фронтенд-разработчиков Ozon и отвечаем за пайплайны для проектов, построенных на платформенных решениях.
Для автотестирования этих пайплайнов мы собрали подход, который ускорил проверки в 10 раз. Подробнее о нём я рассказываю в статье.
Вы узнаете:
Жду вас в статье и в комментариях
#ozontech_habr #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11 6👨💻4
Пополняем полку полезных материалов QA-инженера 📖
Статьи
️➡ ️Автотестирование пайплайнов в GitLab CI: наш опыт и практика
️➡ ️Лучшее сообщение об ошибке — это его отсутствие
➡ ️️Не самый сильный разработчик в комнате: как из QA я стала тимлидом разработки
️➡ ️Стоит ли ходить на стажировки QA? Мой опыт в Ozon Tech от отклика и до нашей эры
Подкасты и видео
➡ ️️TestGuild Automation Podcast
️➡ ️Automation Step by Step
️➡ ️Ozon Tech Community QA Meetup
️➡ ️E-CODE 2025 // Трек QA
Книги
➡️ Р. Блэк, Ключевые процессы тестирования
➡️ М. Лутц, Изучаем Python
➡️ С. Канер, Тестирование программного обеспечения
➡️ А. Бхаргава, Грокаем алгоритмы
➡️ У. Шоттс, Командная строка Linux. Полное руководство
➡️ А. Болье, Изучаем SQL
➡️ М. Болтон и Д. Бах, Rapid Software Testing
Дополняйте наш список своими рекомендациями в комментариях🔷
#ozontech_experts #QA
Статьи
️
️
️
Подкасты и видео
️
️
️
Книги
Дополняйте наш список своими рекомендациями в комментариях
#ozontech_experts #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16 7❤4👍3
Route 256 Pro — практико-ориентированный интенсив от наших экспертов.
Открыли регистрацию на два направления в новом формате. Обо всём по порядку.
Этот набор только для специалистов с коммерческим опытом от 3-х лет.
3 недели образовательного контента + 1 неделя дискуссий с экспертами Ozon Tech + 2 недели на разработку проекта.
И конечно, всё онлайн и бесплатно.
Закрытый чат участников и экспертов для обмена мнениями и качественного нетворка.
#route256 #route256pro
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21 10❤7🗿3❤🔥1
Обучили нашу генеративную модель давать вам чёткие подсказки в поиске на маркетплейсе. И на 23% повысили их привлекательность.
Привет, это Владислав Жужель, ведущий математик-разработчик моделей пользовательского поведения.
Одна из задач моей команды — развитие системы текстовых подсказок при вводе поискового запроса. Раньше мы использовали классический подход: обучали градиентный бустинг над деревьями решений выбирать лучшие варианты из готовых запросов. Но эффективность такой модели упёрлась в потолок, и мы подумали:
💫 а что, если подсказки не выбирать, а генерировать?
↪️ Если вкратце, у нас получилось не только увеличить число кликов по подсказкам, но и уменьшить количество пустых выдач.
Подробнее о процессе обучения и перспективах масштабирования нашей модели рассказал в статье. Жду вас на Хабре👋
#ozontech_habr
Привет, это Владислав Жужель, ведущий математик-разработчик моделей пользовательского поведения.
Одна из задач моей команды — развитие системы текстовых подсказок при вводе поискового запроса. Раньше мы использовали классический подход: обучали градиентный бустинг над деревьями решений выбирать лучшие варианты из готовых запросов. Но эффективность такой модели упёрлась в потолок, и мы подумали:
Подробнее о процессе обучения и перспективах масштабирования нашей модели рассказал в статье. Жду вас на Хабре
#ozontech_habr
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤7👍6🗿3✍1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Причина прийти в офис №308: есть риск находить 10 000 шагов.
Инженеры и менеджеры Ozon Tech поделились любимыми маршрутами недалеко от наших офисов и коворкингов.
Ваши рекомендации ждём в комментариях🪿
💫 Москва
💫 Санкт-Петербург
💫 Минск
💫 Новосибирск
💫 Нижний Новгород
💫 Алматы
Инженеры и менеджеры Ozon Tech поделились любимыми маршрутами недалеко от наших офисов и коворкингов.
Ваши рекомендации ждём в комментариях
👣 Маршрут: от м. Китай-город в сторону бара Escapist.
Время: 30 – 60 минут.
Атмосфера: не самые известные и популярные переулки с большим количеством мелких магазинчиков с винтажными, крафтовыми и просто редкими вещами. На улице здесь всё время играет музыка, летом особенно много тусовок.
👣
Маршрут:
м. Университет – м. Ломоносовский проспект.
Время:
25 минут.
Атмосфера:
студенческий вайб, много китайских кафе и магазинов (недалеко находится посольство). Весной можно увидеть сакуру у факультета космических исследований. Летом можно расширить маршрут и зайти в ботсад. А ещё это любимый путь до теннисного корта, где играет Ozon Tech.
👣
Маршрут:
м. Автозаводская – Замоскворечье.
Время:
90 – 120 минут.
Атмосфера:
купеческая Москва, помноженная на неспешность и романтику трамваев и приправленная гастроурбанизмом. От Автозаводской и до Новоспасского монастыря по Симоновскому валу, далее на любом трамвае до Павелецкой. Оттуда по Новокузнецкой улице до м. Третьяковская, где можно взять кофе в ABC или поесть в JPan или Frank, затем прогуляться по Балчугу назад до Павелецкой. Можно добавлять бильярд, кофе, еду в разных местах по пути и по настроению.
👣
Маршрут:
Петроградская сторона — от Петроградской набережной к Каменноостровскому проспекту через тихие дворы и улицы.
Время:
50 – 70 минут.
Атмосфера:
здесь можно увидеть Петербург без туристической суеты — с доходными домами начала XX века, уютными дворами и одной из самых красивых коллекций архитектуры модерна в городе.
👣
Маршрут:
Набережная Свислочи (парк Горького) – Осмоловка – Немига.
Время:
около 60 минут, если без остановок.
Атмосфера:
успокаивающие прогулки возле воды (хотя иногда набережная может быть немного шумной, особенно в районе парка). Но Минск в целом тихий город, поэтому наличие небольшого скопления людей не станет проблемой — пробок не будет точно. Насладившись старой сталинской застройкой вдоль набережной, возле Большого театра Беларуси сворачиваем в сторону Осмоловки — аутентичной двухэтажной застройки в самом центре города со множеством кафе. Мое любимое Tiden с десертами из пекарни Cookie Rookie. Сделав круг по Осмоловке возвращаемся на набережную в районе Троицкого Предместья и гуляем в сторону сквера рядом с гостиницей Беларусь. Здесь можно уютно посидеть на лавочке и покормить птиц. Прогулку можно закончить в сторону м. Немига с видами старого (и нового) Минска.
👣
Маршрут:
Красный проспект — набережная Оби.
Время:
40 – 60 минут с остановками.
Атмосфера:
сблизиться с городом за одну прогулку. Здесь находятся главные архитектурные символы города: НОВАТ, Дом с часами, Стоквартирный дом и здание правительства области. По дороге легко проследить, как рос и менялся Новосибирск, а в финале выйти к набережной Оби.
👣
Маршрут:
Кремль — Чкаловская лестница — Рождественская улица.
Время:
2,5 – 4 часа.
Атмосфера:
узнать Нижний Новгород с разных сторон. По пути будут исторический центр, стены кремля, панорамы Волги и Оки со смотровых площадок и знаменитая Чкаловская лестница. А закончить прогулку можно на Рождественской улице — среди старинных особняков, кафе и баров.
👣
Маршрут:
от Театра оперы и балета по улице Панфилова к Зелёному базару.
Время:
40 – 50 минут.
Атмосфера:
классический маршрут по историческому центру, где неспешность европейского променада гармонично сочетается с восточным колоритом. По пути встретятся пешеходные улицы, городские скверы, кафе и один из самых известных рынков Алматы.
Please open Telegram to view this post
VIEW IN TELEGRAM
😍22✍14 12❤10👍3😁2
Внедрили трёхуровневую защиту секретов в процесс разработки, сохранили высокую скорость доставки кода в прод и минимизировали риски утечки на всех этапах — от локального коммита до выполнения пайплайнов❕
Привет, на связи Роман Тращинский, старший ИБ-инженер. Мы в команде отвечаем за обнаружение секретов до того, как они попадут в репозиторий. Для этого у нас есть три уровня проверки.
⚙️ Уровень 1: pre-receive hook.
Он построчно анализирует изменяемые файлы на наличие секретов при помощи регулярных выражений:
➡️ если секрет обнаружен, push блокируется с указанием найденного в коде потенциального секрета;
➡️ если результат ложный, у разработчиков есть возможность проставить тег \[NOSEC\] в сообщение коммита;
➡️ если в сообщении коммита присутствует тег \[NOSEC\], pre-receive hook пропускает push, но отправляет событие в SIEM для анализа секрета. На основании события на платформе создаётся обращение в Jira с контекстом обнаружения секрета;
➡️ дежурный оперативно проверяет, легитимно ли разработчик использовал тег \[NOSEC\]:
🔵 если да, то сработка поступает в ответственного за разработку pre-receive hook для устранения ложного срабатывания;
🔵 если нет, создаётся задача на инвалидацию секрета.
⚙️ Уровень 2: post-receive сервис с более жёсткими регулярными выражениями.
Пост-сканирование запускается каждый день вечером и проверяет содержимое всех файлов в master-ветке по проектам, которые изменились за 24 часа. Утром дежурный изучает все найденные системой секреты и заводит задачу на инвалидацию секрета на ответственных за утечку.
⚙️ Уровень 3: маскирование секретов в логах.
Никто не застрахован от того, что в процессе выполнения одного из этапов пайплайна CI/CD в job-логах окажется секрет от какого-нибудь Service Account. Перед тем как попасть к пользователю, логи попадают в хранилище S3, где при помощи S3 Lambda мы перехватываем содержимое и проверяем его регулярными выражениями на наличие секретов. Если обнаружен секрет, мы создаём заявку на обработку, а сам секрет в логах маскируем.
Благодаря гибкости с тегом \[NOSEC\] и пост-сканированию мы сохраняем высокую скорость разработки, обучаем систему на ложных срабатываниях и за счёт S3 Lambda надёжно закрываем слепую зону среды выполнения✨
#ozontech_experts #cybersec
Привет, на связи Роман Тращинский, старший ИБ-инженер. Мы в команде отвечаем за обнаружение секретов до того, как они попадут в репозиторий. Для этого у нас есть три уровня проверки.
Он построчно анализирует изменяемые файлы на наличие секретов при помощи регулярных выражений:
Пост-сканирование запускается каждый день вечером и проверяет содержимое всех файлов в master-ветке по проектам, которые изменились за 24 часа. Утром дежурный изучает все найденные системой секреты и заводит задачу на инвалидацию секрета на ответственных за утечку.
Никто не застрахован от того, что в процессе выполнения одного из этапов пайплайна CI/CD в job-логах окажется секрет от какого-нибудь Service Account. Перед тем как попасть к пользователю, логи попадают в хранилище S3, где при помощи S3 Lambda мы перехватываем содержимое и проверяем его регулярными выражениями на наличие секретов. Если обнаружен секрет, мы создаём заявку на обработку, а сам секрет в логах маскируем.
Благодаря гибкости с тегом \[NOSEC\] и пост-сканированию мы сохраняем высокую скорость разработки, обучаем систему на ложных срабатываниях и за счёт S3 Lambda надёжно закрываем слепую зону среды выполнения
#ozontech_experts #cybersec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥13 6❤4⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё не смотрели доклады Ozon Tech Community CyberSec Meetup?
Понятно.
А мы принесли вам запись:
↪️ Швейцарский нож: безопасная организация удалённого доступа — Максим Лагутин, руководитель группы безопасности маркетплейса.
↪️ Patch Management на рабочих станциях — Лейли Какабаева, инженер по информационной безопасности.
↪️ Как навести порядок в потоке событий ИБ: опыт SOC Ozon — Андрей Кавыкин, руководитель подгруппы управления событиями ИБ.
↪️ Ozon CTF: создать проблему, решить проблему — Даниил Кутузов, инженер по информационной безопасности и Максим Смирнов, старший аналитик по информационной безопасности.
Только сначала — ролик (чтобы сформировать своё собственное положительное мнение о митапе) 😎
#ozontech_meetup #cybersec
Понятно.
А мы принесли вам запись:
#ozontech_meetup #cybersec
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥8 4👍3❤2🤣2🙏1👨💻1
Ускорили расчёт факторов ранжирования в 3 раза. Но наш подход может вам не понравиться.
Привет, Это Петя Портнов, ведущий разработчик группы среднего поиска. Наш сервис работает на выборке наиболее релевантных товаров от базового поиска, и наша задача — повышать точность ранжирования.
Раньше мы делали это через рекурсивную интерпретацию дерева вычислений. Но формулы постоянно усложнялись. В какой-то момент вычисление этих формул стало съедать 15% всех ресурсов CPU сервиса и генерировать гигантское количество лишних аллокаций памяти.
Тогда мы и написали свой динамический компилятор, работающий прямо в рантайме👌
↪️ В статье рассказываю, как это было. Показываю примеры генерации байт-кода JVM, разнообразные подходы к тестированию (включая property-based и снэпшотное) и разбор четырёх инженерных гипотез, которые помогли нам выиграть ещё больше перфа.
#ozontech_habr
Привет, Это Петя Портнов, ведущий разработчик группы среднего поиска. Наш сервис работает на выборке наиболее релевантных товаров от базового поиска, и наша задача — повышать точность ранжирования.
Раньше мы делали это через рекурсивную интерпретацию дерева вычислений. Но формулы постоянно усложнялись. В какой-то момент вычисление этих формул стало съедать 15% всех ресурсов CPU сервиса и генерировать гигантское количество лишних аллокаций памяти.
Тогда мы и написали свой динамический компилятор, работающий прямо в рантайме
#ozontech_habr
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥7 5❤🔥2
Спектр вакансий команды CRM 🔝
😛 Тимлид Go
😶 Data Scientist
🙂 Go-инженер
😃 QA-инженер
Ждём ваши отклики и желание развивать лучший в мире маркетплейс. Такой вот вайб в пятницу☀️
#ozontech_vacancies
Ждём ваши отклики и желание развивать лучший в мире маркетплейс. Такой вот вайб в пятницу
#ozontech_vacancies
Please open Telegram to view this post
VIEW IN TELEGRAM