Обновить
Сначала показывать
Порог рейтинга
Уровень сложности

Поиск в глубину: какие инструменты помогают работать поиску в Uzum Market

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8.6K

Всем привет! 

Меня зовут Дмитрий Шипилов, с вами команда поиска Uzum Market.

Мы уже рассказывали вам о нашем поисковом движке: о том, как вообще работает ранжирование и что у него под капотом и как мы получаем кандидатов с помощью векторного поиска

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

Так что там про поиск

Новости

Аннотации в Kotlin: от @Deprecated до своего KSP-процессора

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8.2K

Аннотации в Kotlin — это не только @Deprecated и @Suppress. Разбираемся, где живут SOURCE, BINARY и RUNTIME, чем KSP отличается от kapt, как compiler plugins меняют код и какие практические задачи можно закрыть генерацией: debug menu, удаление экспериментов и каталог performance-метрик.

Читать далее

Почему Android экран дёргается: простые ошибки, которые ломают плавность

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

После этой статьи вы сможете найти самые частые причины лагов в Compose-экранах и быстро убрать их без больших переписываний.

Разберем, почему большие экраны начинают дергаться, как lazy-списки ломаются из-за плохих ключей, где тяжелая работа незаметно попадает в UI-поток и какие правки обычно дают самый быстрый эффект.

Хочу читать дальше

«Взрыв поверхности» или «вертикальный срез»: какой подход выбрать при построении MLOps-платформы?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.8K

Привет, Хабр! Меня зовут Кирилл Кулаков, я занимаюсь развитием MLOps-платформы в Uzum Fintech.

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

И тут коллеги начали задавать вопросы «Почему мы не разворачиваем каждый компонент последовательно, настраивая все досконально?». Для меня это звучало как: «Ты сделал неправильно, сейчас будем разбирать твою работу и от половины откажемся». 

Мы строим MLOps-платформу под широкий спектр AI-задач и по ходу работы постоянно сталкиваемся с архитектурными вызовами и альтернативными решениями. 

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

И потом я задумался, а на самом ли деле в разных компаниях и командах бывают настолько разные подходы к этому делу?

В статье предлагаю поисследовать эту тему вместе со мной.

Читать далее

Как прокачать документацию API ковром, и причем тут Валера

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.1K

Всем привет! Я Антон, системный аналитик из команды трансграничных переводов в Uzum Fintech, и от меня уже два месяца ждут текст по результатам выступления на внутреннем митапе.

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

Читать далее

Как оптимизировать картинки в Android и не сломать UX: метрики, практики и компромиссы

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели6.3K

Если экран с картинками начинает тормозить, проблема редко сводится к одному AsyncImage. Разбираю, что действительно стоит измерять, как использовать preview и prefetch, зачем делить устройства на tier и почему одинаковое поведение на всех девайсах почти всегда ошибка.

Читать далее

WireMock без боли

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.6K

Всем привет, меня зовут Булат Маскуров, я QA Lead в Uzum Fintech. В своей статье расскажу, как сделать WireMock «ультимативным» mock-сервером. А если пока вы не знакомы с этим инструментом, я введу в курс дела, объясню, как и зачем прикручивать к WireMock простой и удобный Web GUI, и самое интересное: покажу инструмент изнутри, опишу Extension API и расскажу про наше кастомное расширение, которое решило реальную проблему.

Читать далее

Как рассрочка помогает расти маркетплейсу: кейс Uzum Market

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.8K

Привет, Хабр. Меня зовут Александр Шеломанов, я менеджер продукта в Uzum Market. Отвечаю за развитие экосистемных стримов — направлений, которые связывают сервисы компании и помогают им работать как единое целое. 

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

Читать далее

Оптимизация БД начинается в пятницу

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

Всем привет, меня зовут Денис Лимарев, я руковожу разработкой в одной из продуктовых команд Uzum Tezkor. В этой статье разберу несколько оптимизаций запросов к БД, которыми наша команда пользуется при разработке своих сервисов, и опишу подход к оптимизациям запросов в целом. В своих проектах мы используем PostgreSQL версии 14.15, поэтому все запросы я проанализировал на ней, и ваши результаты могут отличаться в зависимости от вашей версии.

Читать далее

Меньше кода, больше результата: применяем sqlc для работы с БД

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

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

Читать далее

Как сэкономить время и силы с помощью продуктовых и технических требований

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

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

Мы должны очень быстро бежать, чтобы успевать за конкурентами. С другой стороны, мы должны выдавать качественный продукт, а иначе в нем нет никакого смысла. В этой статье расскажу, какой инструмент мы нащупали, чтобы ускориться и повысить качество. А еще, конечно, снизить стресс команды разработки. Меньше стресса — лучше результаты.

Читать далее

От данных к действиям: как мы создавали рекомендации на главной странице Uzum Market

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

Меня зовут Фарит, я ML-инженер в команде рекомендаций Uzum Market. Сегодня я расскажу, как мы с нуля разработали персональные рекомендации для главной страницы нашего маркетплейса. Мы разберем архитектуру системы, используемые алгоритмы и способы измерения успеха проекта.

Читать далее

Как быстрее вывести продукт на рынок? Перемешать этапы разработки

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.9K

Всем привет! Меня зовут Ксения, я Engineering Manager в кластере Buyers Experience в Uzum Market. Наша команда занимается разработкой страницы товара и отзывов на вебе и в мобильных приложениях.

Путь нашей команды начался достаточно интересно: мы очень долго и упорно разрабатывали новую функциональность, потом очень долго и упорно ее тестировали, пока не довели до идеала ее работу и дизайн. Мы много созванивались друг с другом и обсуждали задачу, и наконец отправили ее в релиз. Вся команда, гордая собой, пришла к Product-менеджеру, чтобы он увидел плод наших стараний, но он оказался не так рад. Продакт сказал, что это не то, что он хотел изначально. Повисла ужасающая тишина. Эта задача называлась: «Форма для оставления отзывов на главной». Запомните это название, мы еще с ним встретимся.

Следом за продактом пришел дизайнер, который сказал, что вообще эту форму не видел, а мы вроде бы показывали, но все было достаточно суматошно, так что мы действительно не были уверены.

Так начался наш путь к улучшению процесса разработки.

Читать далее

Ближайшие события

Визуализация Active Session History в PostgreSQL — делаем просто и красиво

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.8K

Привет! Меня зовут Геннадий, я Oracle и PostgreSQL DBA в компании Uzum. По пути еще иногда занимаюсь NoSQL, люблю автоматизировать информацию из Ansible и визуализировать нужные мне метрики в Grafana. Хочу поделиться дашбордом для Grafana, который отображает историю активных сессий PG с их текущим SQL, отсортированных по группам ожиданий. Он помогает мне искать проблемы производительности PG-баз, и может пригодиться тем, кто администрирует Postgres.

Читать далее

Строим систему управления заказами с помощью Temporal: c нуля до десятков тысяч заказов в день

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели27K

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

Читать далее

Древние свитки CI/CD: смыслы, которые мы потеряли

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

Привет, Хабр. Меня зовут Владимир Утратенко, я — Head of Infrastructure and Security в Uzum Market. У меня богатый опыт найма DevOps-инженеров, ведь последние 6 лет я — нанимающий менеджер. А ещё много лет подряд занимаюсь DevOps как моделью разработки. Сегодня мы поговорим про боли в CI/CD, которые часто упускают из вида DevOps-специалисты, лиды и CTO.

Читать далее

CausalImpact как инструмент аналитика в Uzum

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

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

Читать далее

Поиск без границ: путь к векторному поиску в Uzum Market

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.4K

Привет, с вами снова Даша и Uzum Market. В прошлый раз мы глубоко погрузились в пайплайн работы поиска нашего маркетплейса, и я обещала вам вернуться с новостями о его улучшении. Так вот, время пришло, и сегодня мы поговорим про наш опыт внедрения векторного поиска!

Читать далее

Пакетируем легко и просто с помощью Lerna

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели7.2K

Всем привет! Меня зовут Иван Кузнецов, я Head of Frontend в Uzum Market. Расскажу о сложностях, с которыми мы столкнулись на пути к реализации микрофронтендовой архитектуры, и поделюсь результатами, которые мы получили в процессе пакетирования наших решений с помощью Lerna. Надеюсь, тебе, дорогой читатель, будет очень интересно :)

Читать далее

Дайджест новостей из мира будущего, машинного обучения, роботов и искусственного интеллекта за начало осени

Время на прочтение2 мин
Охват и читатели4.7K

Отфильтровав для Вас большое количество источников и подписок, сегодня собрал все наиболее значимые новости из мира будущего, машинного обучения, роботов и искусственного интеллекта за последнее время.

Меня зовут Рушан, и я автор Telegram-канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие новости.

Итак, а теперь сам дайджест:

Читать дайджест
1