Привет, Хабр! На связи команда продуктового матчинга ecom.tech.
В серии статей мы расскажем о разработке матчера для Мегамаркета. Первым делом – давайте вместе посмотрим с разных сторон на задачу продуктового матчинга и разберёмся, почему любому маркетплейсу критически важно уметь её решать (и решать хорошо).
Disclaimer: все названия вымышлены, все совпадения случайны. Кроме Мегамаркета – он настоящий.
Как мы обучаем коллег исследованиям: подход ecom.tech
Привет! Меня зовут Костя Коваленко, я руководитель отдела продуктовых исследований в ecom.tech. Мы разрабатываем ИТ для ритейла реального времени, на наших технологиях работают Самокат и Мегамаркет. Последние 2,5 года я развиваю практику и отдел исследований в компании.
С самого начала существования моего отдела, продуктовых команд и синтезируемых ими гипотез по доработке / разработке продуктов было больше, чем ресурсов исследователей. Мы, как компания, стремимся протестировать любое решение прежде чем реализовать его, и запрос на тесты всегда больше количества тестов, которые могут провести исследователи. Поэтому в команде исследователей ecom.tech мы давно работаем над передачей своих знаний дизайнерам, аналитикам, продактам и другим ролям в компании, и развиваем подходы к обучению.
В статье поделюсь опытом о том, какие методы обучения исследованиям мы применяли, зачем это делали, какие допустили ошибки и к чему пришли.
Пишем плагин для Atlassian Jira — добавляем на экран задачи вкладку с логом автоматизаций
Когда Jira обрастает кастомной логикой, автоматизациями и интеграциями, рано или поздно возникает потребность в отслеживании действий, которые произвели (или не произвели) с задачей все эти роботы.
- Если вам периодически приходят баги о неработающей автоматизации и вы начинаете смотреть логи scriptrunner, automation и прочих JWME – этот момент настал.
- Если заказчик просит фиксировать факт отправки сообщения во внешнюю систему в комментарии к задаче – этот момент точно настал.
- Если вы уже и сами начали создавать комментарии из автоматизаций и groovy-скриптов – момент настал совершенно абсолютно точно.
Этот туториал будет полезен начинающим разработчикам в стеке Atlassian и администраторам Jira, пробующим себя в разработке плагинов.
Как безболезненно внедрить исследования в продуктовую разработку
Дизайнеры Samokat.tech начали проводить продуктовые исследования внутренними силами команды. «Что из этого вышло» и «Как внедрить такой подход» – разбираем на конкретных примерах от первого лица.
Как сделать А/B-тест в офлайне, на примере ускорения доставки в Самокате
Привет! Меня зовут Илья, я продуктовый аналитик в Samokat.tech.
Делать A/B-тесты – довольно привычная вещь для аналитиков. Но как быть, если нужно провести эксперимент в физическом мире? Какие особенности и ограничения есть в офлайне? Как выбирать и оценивать метрики?
Давайте расскажу на примере – как мы пробовали доставлять заказы Самоката ещё быстрее.
Постараюсь рассказать про весь путь: от поиска идеи, предварительной оценки и выбора главной метрики до подведения итогов и выводов. Расскажу об ошибках и чему этот опыт нас научил. Поехали!
Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные
Привет, Хабр! Я Виктор, техлид продукта CI/CD в Samokat.tech. А это, :(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Если запустить в WSL, то винду тоже укладывает. Как же избежать запуска такой штуки на проде? Помогут квоты.
Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.
От 20 до 200 человек за полтора года: как мы строили дизайн-департамент Samokat.tech
Привет! Меня зовут Олег, я руковожу дизайн-направлением Samokat.tech. За последние пару лет наша команда выросла в 10 раз и стала одним из крупнейших департаментов компании.
Подобные темпы масштабирования неизбежно приводят к потребности быстро и сильно меняться: оптимизировать процессы, пересматривать методики и принципы управления. Необходимо постоянно наращивать скорость работы, не теряя в качестве, и пересобирать структуру, сохраняя лояльность команды. В этой статье я поделюсь тем, как мы решали эти задачи.
Надеюсь, мой рассказ будет полезен дизайнерам и руководителям, которые находятся на пороге или в процессе больших перемен. Они смогут сравнить наш опыт со своим и найти для себя пару-тройку инсайтов.
Отключаем ненужный функционал плагина для Jira с помощью кастомной аннотации Spring
Привет, Хабр! Меня зовут Игнат, в Samokat.tech я пишу плагины, автоматизации и интеграции для Jira.
Как разработчик-самоучка, который до «вот этого всего» немного писал на Java, но не пользовался ни средствами сборки (привет, Maven!), ни фреймворками (привет, Spring!), и первые шаги делал по мануалам Atlassian, я сталкивался (и продолжаю) с проблемами, решений которых вендорская документация не подскажет, и эти решения приходится открывать самому.
В этой статье мы вместе с вами напишем свою Spring-аннотацию, которая будет с помощью кастомного бин-постпроцессора (который мы тоже напишем) отключать в нашем плагине для Jira ненужный в проде отладочный функционал.
Эта статья ориентирована на начинающих разработчиков в стеке Atlassian и администраторов, пробующих себя в разработке плагинов для Jira. Те, кто до знакомства с Atlassian SDK уже разрабатывал «под ентерпрайз», не обязательно найдут здесь что-то новое, остальных – приглашаю под кат.
Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде
Привет, Хабр! Меня зовут Данил, я Frontend-разработчик в Samokat.tech. Недавно мы с командой распилили монолит на Angular и перешли к микрофронтендам на Vue.
Наш опыт я постарался упаковать в пошаговый гайд – надеюсь, этот материал поможет тем, кто только начинает свой путь в мире микрофронтендов. По ходу статьи мы с вами вместе пройдём от полного незнания до понимания принципов и ответа на заветный вопрос — нужно ли всё это вам. На практике мы сделаем небольшую демонстрацию, которую вы сможете использовать в своём проекте. Поехали!
Как мы боролись с овербукингом Kubernetes-кластеров
Привет! Меня зовут Александр Лебедев, я SRE в Samokat.tech. Мы строим надёжную платформу для сервисов быстрой доставки и в зону ответственности моей команды входят поддержка Kubernetes-кластеров и управление их ресурсами.
Под катом история о том, как мы пришли к своему варианту resource management через борьбу с овербукингом по CPU.
Приходите на Flow 2023 Meetup #9 про системный и бизнес-анализ
Когда: 21 июня (среда), 17:30 — 21:30 (СПб)
Формат: офлайн (СПб) и онлайн
Задать вопросы спикерам и узнать больше о докладах можно в Telegram-чате.
Послушаем спикеров из Samokat.tech, Почтатех и USABILITYLAB. Поговорим об изменениях в жизни аналитиков и разработчиков при переходе на микросервисы, совместной работе юзабилити-исследователя и бизнес-аналитика, а также инструментах для моделирования сквозных процессов между продуктовыми командами.
В программе — как поделить функциональность и настроить интеграции при росте числа продуктовых команд, как аналитикам и командам разработки безболезненно перейти от монолита к микросервисам и о том, как юзабилити-исследователь превращает данные в ценные инсайты для бизнес-аналитика.
Load2SRE: от нагрузки к доступности, без потери производительности
Привет! Меня зовут Кирилл Юрков, я SRE Team Lead в Samokat.tech. Уже более десяти лет занимаюсь ускорением и проблемами производительности, а также нагрузочным тестированием.
Отвечая на вопрос, что делает SRE в Samokat.tech, скажу, что это те, кто занимается инцидентами и проблемами на всём их жизненном цикле, от этапа архитектуры и разработки до postmortem'а после инцидента.
В этом посте я хочу рассказать, как из нагрузочного тестировщика превратиться в SRE-инженера. Поделюсь, как этот путь проходил я сам, с какими сложностями сталкивался и что случалось на каждом этапе. Также раскрою в деталях саму роль SRE-инженера, чем он занимается и чем полезен. Возможно, после этого вы в команде решите, что вам такая роль тоже нужна (если у вас её ещё нет).
Приходите на Samokat.tech Meetup про Golang-разработку
Когда: 18 мая (четверг), 18:00 – 20:15 МСК/СПБ
Формат: онлайн-трансляция
Задать вопросы спикерам и узнать больше о докладах можно в Telegram-канале.
Послушаем спикеров из Samokat.tech, Авито и Тинькофф. Поговорим об особенностях использования Go в разработке и перехода на него с других языков. Только конкретные примеры из практики и личный опыт спикеров.
В программе — как эффективно работать с памятью и CPU на Go, как в интеграционных тестах с помощью Go-testcontainers получить легкость и простоту модульных тестов и не потерять надежность с реальными зависимостями. Обсудим, кому и когда стоит переходить на Go, что необходимо учесть и где «подстелить соломку».
Постараемся сделать интересно для разработчиков, кто уже пишет на Go, и тех, кто думает о переходе или находится в процессе изучения языка.
Как сделать единый заглушечный контур и освободить себя от рутины
Привет, Хабр! Меня зовут Ира, я SRE в команде Samokat.tech. В этом посте хочу поделиться подходом в тестировании, которым мы пользуемся сами. Если вам при подготовке тестов часто приходится писать похожие друг на друга как две капли воды заглушки (или, как их ещё называют, «моки»), а затем заботиться о том, чтобы их развернуть, то вам может понравиться наше решение. Освободившись от части рутинных забот, вы можете уделить больше времени чему-то более важному.
Разношёрстные и хаотично развёрнутые в окружении заглушки – дорогие и неэффективные. В каждой отдельной заглушке разбирается в лучшем случае только одна команда, чаще только один человек. Со временем при накоплении критической массы они становятся фактически неподдерживаемыми.
Такие заглушки редко переиспользуются и что важнее, никто ими не делится, так как они либо тривиальны, либо написаны не самым лучшим способом (могут оказаться слишком сложными или неоптимальными).
Сложно представить тестировщика в роли доброго самаритянина, раздающего коллегам свои заглушки. Его к этому вряд ли что-то мотивирует, да и работы у него всегда прилично. Некогда отвлекаться! Так, давайте разгрузим немного нашего трудягу.
Приглашаем на Samokat.tech Meetup #2 — безопасность, Next JS и микрофронтенды
24 марта 2023 года проведем в Москве Samokat.tech Meetup про frontend. Мы делаем этот митап, чтобы рассказать, как устроена технологическая сторона ритейла реального времени. В программе — три доклада от спикеров из e-commerce и e-grocery. Посмотрим, чем разработка для этих индустрий похожа или отличается от фронтенда в других сферах. После митапа — интерактив и afterparty.
Samokat.tech Meetup пройдет 24 марта в 18:00, офлайн (в Москве) и онлайн (на YouTube).
Эволюция подходов к работе с таблицами во фронтенде
Всем привет! Меня зовут Аня Ланда, я фронтенд-разработчик в Самокате. В компании я больше двух лет, общий стаж во фронтенде – 6 лет и всё это время я делаю таблицы. В этом посте расскажу про эволюцию подходов к работе с ними, что меняется на пути от нескольких сотен до сотен тысяч элементов в таблице.
Как фронтендеру стать мобильным разработчиком, или Перевод API React в Jetpack Compose
Привет, я Данильян, работаю в Самокате фронтенд-разработчиком, разрабатываю бэкофисное приложение с использованием React. Когда я только начинал изучать Jetpack Сompose, я наткнулся на статью, в которой простым языком для людей, пришедших из мира веб-технологий в мир мобильной разработки, расписано, как писать код для мобильных устройств, чтобы было как в React. Из материала в статье особенно подкупали примеры: вот, что вы делали в React, а вот, как в Jetpack Compose получить то же самое.
Делюсь с вами переводом этой статьи.
Как тестировать современный фронтенд
Бывало, замечаешь в коде «нехороший» модуль или функцию и тут же тянутся руки их отрефакторить. Но как потом убедиться, что правки не сломали какой-нибудь сценарий в приложении или вовсе не положили продакшен? Этих ситуаций можно избежать, если в проекте есть тесты.
Меня зовут Александр Моргунов, я техлид в Самокате. Пишу на TypeScript, React, ReactNative. В разное время писал тесты для фронтенда, бэкенда и мобилок. В этом посте хочется поговорить о том, как можно тестировать современные фронтенд-приложения и какие подходы к тестированию сейчас актуальны.
Надеюсь, пост будет полезен для фронтендеров и тестировщиков, которые хотели бы свериться по дополнительным практикам для написания тестов. А бэкендеры смогут лишний раз посмотреть на схожесть и различия в тестировании для бэка и фронтенда.
Ruby под нагрузкой, или Как поменять Puma на Falcon за неделю до релиза
Всем привет! Меня зовут Александр Шерман, я тимлид в команде CRM в Самокате. Мы в первую очередь известны по своей модели доставки заказов от 15 минут. Чтобы укладываться в такой норматив, у нас достаточно жёсткие SLA (2,5 минуты на сборку заказа), что, в свою очередь, диктует строгие требования к надёжности и быстродействию сервисов.
Часть проектов у нас написана на Ruby. Если раньше в качестве web-сервера для них мы использовали Puma (который уже стал de-facto стандартом) и горя не знали, то в определённый момент нам его производительности стало не хватать. В статье, сделанной по мотивам моего доклада на конференции Ruby Russia 2022 расскажу, как и зачем мы переехали на другой веб-сервер.
Нюансы поддержки npm в Deno
Всем, привет! Меня зовут Данильян, я работаю в Самокате фронтенд-разработчиком и разрабатываю бэкофисное приложение с использованием React. Помимо работы, у меня есть несколько сайд-проектов, в которых я широко использую Deno. В последнее время этот проект радует новыми фичами чуть ли не каждую неделю и об одной из них я хотел бы рассказать в этом посте.
Информация
- Сайт
- ecom.tech
- Дата регистрации
- Численность
- 1 001–5 000 человек
- Местоположение
- Россия
- Представитель
- Алексей Долгушев