Ответы на эти вопросы вы найдёте в записи
А ещё по ссылке
#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
🔥17 7❤4👍3
Route 256 Pro — практико-ориентированный интенсив от наших экспертов.
Открыли регистрацию на два направления в новом формате. Обо всём по порядку.
Этот набор только для специалистов с коммерческим опытом от 3-х лет.
3 недели образовательного контента + 1 неделя дискуссий с экспертами Ozon Tech + 2 недели на разработку проекта.
И конечно, всё онлайн и бесплатно.
Закрытый чат участников и экспертов для обмена мнениями и качественного нетворка.
#route256 #route256pro
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22 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
👍22🔥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
Станет ли умная строка заменой графическому интерфейсу?
Привет! Это Тимур Репин, продуктовый дизайнер отдела «Логистика продавца». Приглашаю вас на экскурсию по истории компьютерных интерфейсов — в мою хабрастатью.
Мы начнём с командной строки, вспомним, как зарождалась графика, помечтаем об эволюции UI в ближайшем будущем. И поймём, почему ответ на вопрос в заголовке —✨ нет✨
А пока вы ещё здесь, проголосуйте в реакциях.
Хотите, чтобы умная строка заменила графику и кнопки?
👍 — да, и чтобы вместо кнопки «Купить» можно было просто сказать, какие именно носки я хочу
⚡️— нет, меня вообще пугает вся эта ИИ-зация. Дуров, верни стену
#ozontech_habr
Привет! Это Тимур Репин, продуктовый дизайнер отдела «Логистика продавца». Приглашаю вас на экскурсию по истории компьютерных интерфейсов — в мою хабрастатью.
Мы начнём с командной строки, вспомним, как зарождалась графика, помечтаем об эволюции UI в ближайшем будущем. И поймём, почему ответ на вопрос в заголовке —
А пока вы ещё здесь, проголосуйте в реакциях.
Хотите, чтобы умная строка заменила графику и кнопки?
⚡️— нет, меня вообще пугает вся эта ИИ-зация. Дуров, верни стену
#ozontech_habr
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡69 21👍8👨💻4🔥1