uk
Feedback
Купер.тех

Купер.тех

Відкрити в Telegram

Мы tech-команда, которая создает сервис доставки из магазинов и ресторанов (ex СберМаркет) и делает это с любовью. Хабр: https://bit.ly/3xOhSYw Видео: https://bit.ly/3SW9MCw VK: https://bit.ly/45NudZC Вакансии: https://team.kuper.ru/tech

Показати більше
8 070
Підписники
-624 години
-77 днів
-4630 день
Архів дописів
💔 Что делать, если упала производительность? Плохой план обычно выглядит так: посмотреть логи → открыть код → предположить с
+6
💔 Что делать, если упала производительность? Плохой план обычно выглядит так: посмотреть логи → открыть код → предположить самое очевидное → ошибиться → повторить ещё несколько раз. Чтобы не тратить много времени на поиск проблемы, в Go есть pprof — встроенный профилировщик, который показывает, где сервис действительно тратит ресурсы. В карточках инженер-разработчик на Go Артём Юзюк рассказывает, как с его помощью искать утечки горутин, проблемы с памятью и горячие точки в коде.

CodeFest всё! Насыщенные вышли выходные 🚀 Делимся атмосферным видео и рассказываем, как это было. Мы собирали башню из куперян, играли в крокодила с нейросетью, разбирались в архитектуре, делились историями об инцидентах и просто очень круто проводили время. Спасибо всем, кто был с нами! И Новосибирску за теплый прием. Вы супер, CodeFest в сердечке, а общение бесценно. ❤️

🔥 Передаём привет от нашей команды с CodeFest! Мы тут со стендом, хорошим настроением и инженерными разговорами — заглядывай, пока конференция в самом разгаре.

Відеоповідомлення00:11

🎉 Хабру исполняется 20 лет! А значит, самое время вспомнить, как всё начиналось! Собрали ретро-карточки, в которых вспоминае
+5
🎉 Хабру исполняется 20 лет! А значит, самое время вспомнить, как всё начиналось! Собрали ретро-карточки, в которых вспоминаем ранний Хабр и рассказываем, когда там появился Купер.тех. И раз уж сегодня говорим про Хабр, есть ещё один приятный повод. Сразу три наших статьи попали в шорт-лист премии «Технотекст»: «Как запускать проекты без команды? Главное о кросс-командном проджект-менеджменте» — Марина Гончарова ✨«LLM‑разметка в поиске: от эксперимента к инструменту» — Александр Баранов ✨«Три мушкетера из мира DevSecOps. Внедряем инструменты для развития AppSec-процессов» — Максим Коровенков Гордимся ребятами! ❤️

⚡️Новосибирск, мы едем! 30–31 мая будем со стендом на конференции CodeFest, где можно будет пообщаться с нашими экспертами, з
⚡️Новосибирск, мы едем! 30–31 мая будем со стендом на конференции CodeFest, где можно будет пообщаться с нашими экспертами, задать вопросы, поучаствовать в активностях и просто провести время по-соседски, как мы любим. Если планируете быть на CodeFest, заглядывайте к нам. Будем рады познакомиться или увидеться снова.❤️

🌍Тестировать нельзя надеяться В Купер.тех много микросервисов, интеграций и сценариев, которые завязаны друг на друга. Поэто
🌍Тестировать нельзя надеяться В Купер.тех много микросервисов, интеграций и сценариев, которые завязаны друг на друга. Поэтому тестирование здесь редко ограничивается проверкой одной фичи: важно понимать, как изменение поведёт себя в системе целиком и что будет под нагрузкой. В мини-интервью Арсений Лагутин, руководитель обеспечения качества тестирования, рассказал, как в большом e-commerce-продукте подходят к QA: 👉 Проверяете ли вы отдельные сервисы изолированно или чаще тестируете пользовательский путь целиком?
Основной объем нашей системы представляют собой микросервисы. Подход и уровни тестов зависят от задачи, модулей системы, которые она затрагивает или влиянию на пользовательский путь. Новую реализованную фичу в ветке стараемся проверять на изолированном окружении для сохранения гигиены master. Здесь же запускаем изолированные функциональные и интеграционные автотесты. Далее, при необходимости, проводится ручное интеграционное тестирование и Е2Е, а также приемочное на production или stage окружениях.
👉 Какие инструменты и подходы используете для автоматизации тестирования?
Тут у нас «сборная солянка». Для автоматизации используем Golang, Python, JS (Detox) и TS (Playwright). Определяем уровни автоматизации под потребности системы и команды, а зону ответственности делим между QA и разработчиком. Автоматизируем в рамках своей предметной области и стараемся запускать прогоны на каждое новое изменение сервиса. Автоматизацией занимается QA в продуктовой команде, а не отдельный департамент. За счет глубокого знания тестируемой области повышаем эффективность автотестов и стараемся привлекать разработку для разбора упавших автотестов в рамках создаваемых ими изменений.
👉 Как вы понимаете, что система готова к высоким нагрузкам и «переживёт» сезонный пик?
Ориентируемся на цели бизнеса прежде всего. Основным фактором для нас является ожидаемое число заказов. В компании имеется инструменты для проведения нагрузочного тестирования как на stage, так и на production окружениях изолированно для сервисов и Е2Е (в связке) на отдельных тестовых сущностях. Нагрузочное тестирование проводим на регулярной основе и в рамках валидации крупных изменений. Успехом является соответствие ожидаемой выдерживаемой нагрузки относительно бизнес-целей и реальной, полученной на production-окружении. В случае отклонений анализируем, проводим оптимизации и повторяем, пока всё не будет хорошо работать.
👉 Насколько QA вовлечён в продуктовые решения?
QA подключаем к ранним этапам SDLC. Для нас это окончание Discovery, когда продукт сформировал свое видение задачи и оформил по нему ожидания. Из-за отсутствия формализации требований не проводим классического анализа, а вместе с командой разбираемся, как задача должна работать технически, какие есть риски и какой подход выбрать. Так удаётся заранее заметить, где ожидания продукта могут расходиться с техническими ограничениями или логикой системы. В итоге часть ошибок мы ловим ещё до разработки, а значит быстрее и дешевле доводим задачу до релиза.

🌍Тестировать нельзя надеяться В Купер.тех много микросервисов, интеграций и сценариев, которые завязаны друг на друга. Поэто
🌍Тестировать нельзя надеяться В Купер.тех много микросервисов, интеграций и сценариев, которые завязаны друг на друга. Поэтому тестирование здесь редко ограничивается проверкой одной фичи: важно понимать, как изменение поведёт себя в системе целиком и что будет под нагрузкой. В мини-интервью Арсений Лагутин, руководитель обеспечения качества тестирования, рассказал, как в большом e-commerce-продукте подходят к QA: 👉 Проверяете ли вы отдельные сервисы изолированно или чаще тестируете пользовательский путь целиком?
Основной объем нашей системы представляют собой микросервисы. Подход и уровни тестов зависят от задачи, модулей системы, которые она затрагивает или влиянию на пользовательский путь. Новую реализованную фичу в ветке стараемся проверять на изолированном окружении для сохранения гигиены master. Здесь же запускаем изолированные функциональные и интеграционные автотесты. Далее, при необходимости, проводится ручное интеграционное тестирование и Е2Е, а также приемочное на production или stage окружениях.
👉👉Какие инструменты и подходы используете для автоматизации тестирования?
Тут у нас «сборная солянка». Для автоматизации используем Golang, Python, JS (Detox) и TS (Playwright). Определяем уровни автоматизации под потребности системы и команды, а зону ответственности делим между QA и разработчиком. Автоматизируем в рамках своей предметной области и стараемся запускать прогоны на каждое новое изменение сервиса. Автоматизацией занимается QA в продуктовой команде, а не отдельный департамент. За счет глубокого знания тестируемой области повышаем эффективность автотестов и стараемся привлекать разработку для разбора упавших автотестов в рамках создаваемых ими изменений.
👉👉Как вы понимаете, что система готова к высоким нагрузкам и «переживёт» сезонный пик?
Ориентируемся на цели бизнеса прежде всего. Основным фактором для нас является ожидаемое число заказов. В компании имеется инструменты для проведения нагрузочного тестирования как на stage, так и на production окружениях изолированно для сервисов и Е2Е (в связке) на отдельных тестовых сущностях. Нагрузочное тестирование проводим на регулярной основе и в рамках валидации крупных изменений. Успехом является соответствие ожидаемой выдерживаемой нагрузки относительно бизнес-целей и реальной, полученной на production-окружении. В случае отклонений анализируем, проводим оптимизации и повторяем, пока всё не будет хорошо работать.
👉 👉Насколько QA вовлечён в продуктовые решения?
QA подключаем к ранним этапам SDLC. Для нас это окончание Discovery, когда продукт сформировал свое видение задачи и оформил по нему ожидания. Из-за отсутствия формализации требований не проводим классического анализа, а вместе с командой разбираемся, как задача должна работать технически, какие есть риски и какой подход выбрать. Так удаётся заранее заметить, где ожидания продукта могут расходиться с техническими ограничениями или логикой системы. В итоге часть ошибок мы ловим ещё до разработки, а значит быстрее и дешевле доводим задачу до релиза.

photo content

👀 Иногда случайно узнаёшь прошлую специализацию коллеги — и потом уже невозможно смотреть на него как раньше. Собрали истори
+5
👀 Иногда случайно узнаёшь прошлую специализацию коллеги — и потом уже невозможно смотреть на него как раньше. Собрали истории ребят из нашей команды о том, как они меняли профессии, учились с нуля, писали OpenSource-проекты, строили дороги, переводили с японского и в какой-то момент поняли, что хотят заниматься технологиями. Сейчас все они работают в Купер.тех и развивают наши продукты. 🏃Если у вас тоже есть такая история — делитесь в комментариях!

🪑Садитесь в удобное кресло. 🎧 Надевайте наушники. ☕️ Заваривайте горячий чай 🍫 с чем-нибудь вкусным. И включайте новый вып
🪑Садитесь в удобное кресло. 🎧 Надевайте наушники. ☕️ Заваривайте горячий чай 🍫 с чем-нибудь вкусным. И включайте новый выпуск ProductCamp Podcast с нашим директором по продукту Еленой Тихоновой. В выпуске обсудили: 🟢какие навыки помогают быть директором по продукту 🟢какие есть мифы о роли CPO 🟢зачем самостоятельным продактам нужен CPO 🟢что нужно, чтобы расти в этой роли Слушать тут 🏃 Mave Яндекс.Музыка Apple Podcast YouTube Аудио

👀Когда я работаю, на меня смотрит Меладзе Если бы офисы изучали как культурный феномен, то основными артефактами были бы не
+8
👀Когда я работаю, на меня смотрит Меладзе Если бы офисы изучали как культурный феномен, то основными артефактами были бы не ноутбуки и переговорки, а довольно неожиданные вещи. Предлагаем погрузиться в атмосферу нашего Московского офиса и оценить, что нашим сотрудникам потребовалось для создания рабочего вайба✨

🥳 Подводим итоги розыгрыша книги «Эффективный Node.js» ✨Победителем становится @alt_swan✨ Надеемся, что после чтения найдетс
🥳 Подводим итоги розыгрыша книги «Эффективный Node.js» ✨Победителем становится @alt_swan✨ Надеемся, что после чтения найдется пара инсайтов, которые будут вам полезны и останутся надолго. Может она и вас вдохновит стать техническим редактором. На счет отправки книги напишем вам в личные сообщения.  И спасибо всем, кто поучаствовал — было приятно видеть вашу активность!

🔥Как пройти путь от мобильного разработчика до CTO? Наш CTO Андрей Хышов поделился своим опытом и карьерным треком в новом в
🔥Как пройти путь от мобильного разработчика до CTO? Наш CTO Андрей Хышов поделился своим опытом и карьерным треком в новом выпуске подкаста «Быть CTO». Обсудили: 🟢как быстро адаптироваться в новой роли и разобраться в неизвестном 🟢культуру ownership и то, как она устроена в Купере 🟢как меняется мышление с ростом ответственности 🟢зачем CTO выходить «в поля» и лично развозить заказы Смотрите выпуск: YouTube VK Видео

🎨🎨🎨🎨🎨🎨 Мы хотим поделиться результатом работы Кати и Ивана с вами и поэтому разыгрываем один экземпляр книги «Эффективный Node.js». Условия простые: 🟢Проверить подписку на канал 🟢Нажать кнопку «Участвовать» Победителей определим 23 апреля в 15:00 по московскому времени. Бот случайным образом выберет победителей, с которыми свяжемся в личных сообщениях в Телеграме. Проверьте настройки конфиденциальности, чтобы мы могли написать вам. Удачи! ✌️

🔥 Когда инженеры берутся за технический перевод Два наших инженера Иван Щyкин и Екатерина Рязанова стали научными редакторам
+5
🔥 Когда инженеры берутся за технический перевод Два наших инженера Иван Щyкин и Екатерина Рязанова стали научными редакторами книги по Node.js. О том, с какими сложностями они сталкивались и какие решения находили рассказываем в карточках выше.

Герой скидок или убийца маржи? Динамическое ценообразование поможет понять 🏃 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 👉 Всё началось вполне невинно. Маркетологи пришли в чат и сказали: «Давайте просто сделаем скидку 20%. Ну что может пойти не так?». 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 👉 Продажи взлетели. Покупатели в восторге, ты герой скидок, а руководитель доволен. Но... 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 👉 О нет! Ты разбудил древнюю хтонь по имени Большая Скидка. И уже не ты не управляешь ценой. Это цена уже давно управляет тобой! 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 🎨🎨🎨🎨🎨 👉 Скидка начала требовать жертв. Жертв в виде маржи. Много маржи. А если хотите узнать, что было дальше... Читайте новую статью на Хабре «Динамическое ценообразование в E-grocery. Раскладываем по полочкам». В ней Лиза Петяева, старший специалист по анализу данных, рассказывает, как мы в Купер.тех пытаемся договориться с этой древней силой: из каких шагов состоит настоящий динцен в E-grocery, почему нельзя просто взять прогноз спроса и «прикрутить» к нему скидку, как правильно работать с эластичностью и при этом не жертвовать маржой.

photo content

👉Доставка полезных материалов для Go-разработчиков! В Купер.тех мы в основном пишем на Go, и многие инженерные решения так и
👉Доставка полезных материалов для Go-разработчиков! В Купер.тех мы в основном пишем на Go, и многие инженерные решения так или иначе упираются в производительность, архитектуру и умение работать с нагрузкой. Дмитрий Петухов, инженер команды прайсинга и мотивации курьеров, поделился материалами, которые помогают ему с этим в работе:
🌍Язык, перфоманс и инженерные компромиссы Efficient Go — Бартоломей Платка (соавтор Thanos и контрибьютор Prometheus) Если возникает задача снизить потребление ресурсов и при этом оставаться готовыми к высоким нагрузкам, она может казаться противоречивой. Благодаря прагматичным подходам из книги становится понятно, что это вполне достижимо. Автор поможет сформировать правильное мышление в подходах к оптимизации, залезет под капот Go, расскажет много интересного о процессоре и использовании памяти, а также разберет, как эффективнее всего использовать pprof, и поделится, так ли хорош sync.Pool. 🌍Архитектура Чистая архитектура Golang проекта — Олег Козырев 📱смотреть В гайде автор начинает с простой задачи, реализует её в main-файле, и по мере появления новых требований архитектура сервиса постепенно усложняется. Рассматриваются в том числе такие концепции, как Value Objects, Entity, Aggregate, Anti-Corruption Layer. Осторожно: видео на 3 часа, но, как известно, вечно можно смотреть на огонь, воду и на то, как новые бизнес-требования встраиваются в сервис с неподготовленной к ним архитектурой. Считаю этот ролик отличным стартом для знакомства с DDD. В продолжение гайда, полезно будет почитать книги и материалы по предметно-ориентированному проектированию (DDD), среди них я бы выделил: Learning Domain-Driven Design — Влад Хононов Доступная книга по DDD. Плавный вход в тему: объясняет базовые концепции и, что важно, помогает понять, когда DDD действительно нужен, а когда это избыточно. По сравнению с Эвансом более сжато и четко структурировано. Если не осилили DDD от Эванса, советую начать с нее. Domain-Driven Design — Эрик Эванс Классика, которая не стареет. Если «Learning Domain-Driven Design» от Хононова — это быстрый вход в мир DDD с фокусом на тактические паттерны (сущности, агрегаты, value objects), то «синяя книга» Эванса — про стратегию и мышление. Автор подробно объясняет фундаментальные принципы DDD, подкрепляя их своим опытом применения. Implementing Domain-Driven Design — Вон Вернон Практическое продолжение «синей книги». Фокус на практике применения DDD. Автор детально разбирает агрегаты (их размер, границы, правила проектирования), репозитории, доменные сервисы и, что особенно ценно, показывает, как работать с ограниченными контекстами в реальных системах. Что особенно удобно, книга подходит как справочник, его можно открывать отдельные главы под конкретные задачи (например, агрегаты). Go: идиомы и паттерны проектированияДжон Боднер Наверное не найти лучше источника, где в одном месте, настолько полно, структурированно, четко и доходчиво разбираются базовые концепции Go. Я бы посоветовал эту книгу тем, кто перешел в Go из других языков.
Будем рады, если эти материалы окажутся полезными. А какие книги или доклады по Go и архитектуре помогли именно тебе? Пиши в комментариях!

😏 Соскучились по офлайну? Встречаемся на DevOpsConf! 2 и 3 апреля приходите послушать доклады наших экспертов и пообщаться п
😏 Соскучились по офлайну? Встречаемся на DevOpsConf! 2 и 3 апреля приходите послушать доклады наших экспертов и пообщаться после выступлений: 🟢Автоматизируй это немедленно! Инциденты, когда на кону большие деньги. Дарья Попова, руководитель группы мониторинга и Алексей Глотов, руководитель группы разработки. 🟢SLO as a code — нельзя верить людям. Вячеслав Литкович, руководитель группы инженеров ИТ-инфраструктуры. 🟢Воркшоп «Observability: system design». Максим Бурцев, руководитель отдела мониторинга, и Кирилл Гриднев, инженер разработки автоматизаций внутренних процессов, будут консультировать команды и разбирать их решения в составе жюри. Ставьте 🔥, если идёте на конференцию или будете смотреть её онлайн!