Ozon Tech
27.8K subscribers
1.73K photos
133 videos
1 file
743 links
Канал команды Ozon Tech

Регистрация в перечне РКН: https://s.ozon.ru/2nmN32o
Download Telegram
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
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1399
Как приручить ИИ для написания автотестов?
Зачем мы создали ещё один фреймворк для тестирования на Go?
Как измерять качество работы QA?

Ответы на эти вопросы вы найдёте в записи
💫 Ozon Tech Community QA Meetup 💫

А ещё по ссылке фото с события и презентации докладов.

#ozontech_meetup #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥139👍6🗿2
Используем плагин GFT в связке с ИИ иии… ускоряем разработку 🕶️

GFT (Group File Template) — плагин для создания группы файлов в Android Studio. Чаще всего используется для генерации boilerplate-кода, чтобы ускорить разработку.


Привет! Это Никита Скворцов, старший Android-разработчик группы «Монетизация». Однажды мы в команде решили добавить в шаблон GFT файл с предзаполненным промптом для ИИ. Так мы доработали созданные GFT пустые файлы до практически полноценного функционала.

🔩 Наш файл с промптом — это набор из 6 инструкций для ИИ с чётким указанием, откуда брать данные и общие классы, чтобы минимизировать ошибки:
🟢проверка на наличие или добавление зависимостей в модуль с общими компонентами;
🟢валидация корректности сетевых и UI-моделей для ИИ;
🟢изменение и дополнение маппера по шаблону;
🟢создание моковых данных для виджета;
🟢внесение виджета и добавление импортов для него в общий реестр;
🟢удаление файла с промптом.

Запуск: скармливаем файл в любой плагин внутри Android Studio. Я пользуюсь Cline, также удобно использовать Continue.

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

Бонусы:
↪️промпт кастомизируется под конкретный виджет;
↪️шаблонизатор GFT позволяет добавлять названия файлов или пакетов через небольшой UI внутри Android Studio;
↪️шаблон промпта полностью настроен, чтобы сгенерировать сетевые, UI-модели и мапперы для них;
↪️в промпте есть указания, откуда брать общие мапперы (некоторые элементы BDUI у нас переиспользуются);
↪️шаблон подключает виджет, регистрирует зависимость и создаёт пустой preview и мок для виджета.

Что остаётся разработчику? Провалидировать корректность полученных классов и сверстать UI. Также мы актуализируем таблицу с сопоставлениями общих компонентов внутри нашего BDUI.

С применением этого промпта, по моим наблюдениям, мы стали разрабатывать виджеты примерно в два раза быстрее. А некоторые из сгенерированных виджетов, кстати, уже отображаются нашим селлерам 👌

#ozontech_experts #mobiledev #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2016❤‍🔥11👍4🗿4👏1
⚡️Это последнее предупреждение: 17 июня в 19:00 мы встречаемся на CyberSec митапе⚡️

Вы ещё успеваете зарегистрироваться➡️https://s.ozon.ru/3hyn4S5

В программе 4 доклада на базе наших лучших практик: о надёжном удалённом доступе, безопасности рабочих станций, обработке потока событий в SOC и развитии внутренней CTF-культуры.

А ещё Cyber Match — быстрые знакомства с командами для тех, кто задумывается о карьере в нашем департаменте ИБ.

Полезный вечер среды, если в трёх словах 🕶️

#ozontech_event #cybersec
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍9🔥763🗿2
Что будет, если завтра из вашей команды уйдёт Саня?

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

Такие знания часто хранятся не в документах, а в головах отдельных людей. Проблемы начинаются, когда этот человек уходит в отпуск, меняет команду или увольняется.

Тимлид Екатерина Чинкова выделяет четыре проблемы, которые чаще всего встречаются в командах.

[на этом моменте вы листаете карточки, а затем дочитываете пост]

Проблема обычно не в количестве документов, а в том, как с ними работают.

Кто отвечает за обновление? Где хранится информация? Как она попадает в базу знаний? Кто её читает?

Если у вас есть ответы на эти вопросы, знания не зависят от конкретных людей 👌

#ozontech_experts #документация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2212❤‍🔥9👍53🤣2
Как покрыть автотестами работу пайплайнов GitLab CI? Делимся опытом и рабочим подходом.

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

Для автотестирования этих пайплайнов мы собрали подход, который ускорил проверки в 10 раз. Подробнее о нём я рассказываю в статье.

Вы узнаете:
🔵как организовать тестирование пайплайнов, когда зона ответственности затрагивает сразу несколько команд,
🔵как сделать тесты стабильными и лёгкими в отладке.

Жду вас в статье и в комментариях 😀

#ozontech_habr #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116👨‍💻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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1674👍3
⚡️Route 256 Pro стартовал!

Route 256 Pro — практико-ориентированный интенсив от наших экспертов.


Открыли регистрацию
на два направления в новом формате. Обо всём по порядку.

➡️ Что за направления?
🔵Углубленная Go-разработка в масштабе нашей сложной архитектуры.
🔵Комплексная DS-инженерия, от классического ML до CV на проде.

➡️ Почему Pro?
Этот набор только для специалистов с коммерческим опытом от 3-х лет.

➡️ Как всё будет?
3 недели образовательного контента + 1 неделя дискуссий с экспертами Ozon Tech + 2 недели на разработку проекта.
И конечно, всё онлайн и бесплатно.

➡️ Что ещё новенького?
Закрытый чат участников и экспертов для обмена мнениями и качественного нетворка.

Регистрируйтесь и примерьте свой скилсет на наши задачи.

#route256 #route256pro
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21107🗿3❤‍🔥1
Обучили нашу генеративную модель давать вам чёткие подсказки в поиске на маркетплейсе. И на 23% повысили их привлекательность.

Привет, это Владислав Жужель, ведущий математик-разработчик моделей пользовательского поведения.

Одна из задач моей команды — развитие системы текстовых подсказок при вводе поискового запроса. Раньше мы использовали классический подход: обучали градиентный бустинг над деревьями решений выбирать лучшие варианты из готовых запросов. Но эффективность такой модели упёрлась в потолок, и мы подумали:
💫 а что, если подсказки не выбирать, а генерировать?

↪️ Если вкратце, у нас получилось не только увеличить число кликов по подсказкам, но и уменьшить количество пустых выдач.

Подробнее о процессе обучения и перспективах масштабирования нашей модели рассказал в статье. Жду вас на Хабре 👋

#ozontech_habr
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥257👍6🗿31🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Причина прийти в офис №308: есть риск находить 10 000 шагов.

Инженеры и менеджеры 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
😍22141210👍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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥13642
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
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥84👍32🤣2🙏1👨‍💻1
Ускорили расчёт факторов ранжирования в 3 раза. Но наш подход может вам не понравиться.

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

Раньше мы делали это через рекурсивную интерпретацию дерева вычислений. Но формулы постоянно усложнялись. В какой-то момент вычисление этих формул стало съедать 15% всех ресурсов CPU сервиса и генерировать гигантское количество лишних аллокаций памяти.

Тогда мы и написали свой динамический компилятор, работающий прямо в рантайме 👌

↪️ В статье рассказываю, как это было. Показываю примеры генерации байт-кода JVM, разнообразные подходы к тестированию (включая property-based и снэпшотное) и разбор четырёх инженерных гипотез, которые помогли нам выиграть ещё больше перфа.

#ozontech_habr
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥75❤‍🔥2
Спектр вакансий команды CRM 🔝

😛Тимлид Go
😶Data Scientist
🙂Go-инженер
😃QA-инженер

Ждём ваши отклики и желание развивать лучший в мире маркетплейс. Такой вот вайб в пятницу ☀️

#ozontech_vacancies
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥9😍4🤣3👍2