Обновить
Dodo Engineering
О том, как разработчики строят IT в Dodo
Сначала показывать

Perfetto в Android-разработке: когда профайлера уже недостаточно

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

Perfetto показывает те проблемы с производительностью приложения, которые другой профайлер просто не заметит. И не важно, занят ли процессор системными задачами, когда поток готов работать, или GC блокирует UI на 50 миллисекунд — Perfetto всё подсветит.

Ещё не знаете об этом крутейшем инструменте? Тогда эта статья для вас. Привет! Меня зовут Андрей Гришанов. Расскажу вам, что такое Perfetto и как использовать его максимально эффективно.

Познакомиться с топовым профайлером

Автоматизируем HR-процессы в Додо. Часть 1

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

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

Узнали мы это, когда разрабатывали свою HR Platform. Как мы это делали и какие проблемы решали в процессе — я расскажу в своих статьях. Начнём с путешествия в 2018 год, когда мы даже не могли точно сказать, сколько человек работает в управляющей компании Додо. Вперёд в прошлое!

Вернуться в 2018

Как приручить SLO'на в племени микросервисов

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

Бизнес Додо активно масштабируется. Уже сейчас Dodo IS круглосуточно работает в двух облаках, более чем в 25 странах и практически во всех часовых поясах. В таких условиях важно знать, что вся система действительно работает хорошо, а не просто «не горит» прямо сейчас.

Чтобы это знание обрести, мы привезли в нашу инженерную савану SLO'на — неповоротливое, но умное существо. Он наводит порядок в хаосе метрик и алёртов, и отличает реальную проблему от мнимой. А ещё он требует внимания, точных чисел и ясных целей. Поначалу мы его боялись, но позже поняли: если его приручить, он защитит нас от ночных звонков и научит бизнес говорить на языке надёжности.

Сегодня мы расскажем, как приручили своего SLO'на и прошли путь от первых экспериментов с нагрузочным тестированием до построения культуры надёжности.

Читать далее

Вкалывают роботы, а не человек, или как убрать рутину из работы при помощи ИИ

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

Мы живём во времена AI-бума. ИИ упрощает ресёрч информации, визуализирует первые идеи дизайнеров, которые попадают в референсы, и пишет код. Некоторые даже говорят: «скоро разработчики станут не нужны», а «ИИ-агенты будут идеально писать код по промпту «хочу красиво» и т.д.

До этого «скоро» ещё далеко, но это не повод не использовать ИИ-агентов в автоматизации различной рутины. Например, в написании платёжных интеграций для POS-терминалов в разных странах. Передать ИИ-агентам такую задачку — не очень просто, но у нас получилось! Сегодня расскажем, как мы это сделали.

Читать далее

Live Updates на Android: где макеты врут, a SDK ставит границы

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

Весной 2025 года Google представила Live Updates, аналог Live Activity в iOS. Мы быстро запушили продактов — «нам такое надо!» — и потащили фичу в Android-приложение Додо Пиццы.

Но всё оказалось не так просто — мы столкнулись с неполной документацией, расхождениями представлений дизайнеров Google и разработчиков этого SDK, и не только. В общем, запасайтесь попкорном. Сегодня расскажем обо всех нюансах в реализации и тестировании Live Updates.

Читать далее

5 факапов внедрений, или Почему всего не предусмотришь

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

Додо — компания-киборг. Мы разрабатываем софт, железо и всё вот это айтишное, но наш бизнес — оффлайновый, мы развиваем сеть пиццерий Додо и кофеен Дринкит. Наши фичи и продукты постоянно встречаются с реальностью: операционкой, локализацией, погодой и не только.

Поэтому мы создали команду менеджеров внедрений. Они упаковывают и передают в руки бизнеса IT-продукты, причём все — от сканеров маркировки до новаторской умной выдачи. Звучит футуристично, но в реальности часто выглядит как стендап.

Ещё в Додо принято признавать факапы, учиться на них и делиться ими. Привет! Я — Маша, лидер команды внедренцев. Сегодня я собрала для вас пять забавных кейсов внедрений. Мы из них вынесли опыт, а вы узнаете что-то новое и посмеётесь.

Читать далее

«Я кончился»: как мем из макета превратился в рабочий инструмент

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

Многие компании хотят быть «на одной волне с пользователями», но шутить и неформальничать не хотят — слишком уж они серьёзные, да и «вдруг чего». А может ли шутка как-то повлиять на образ бренда, если у него отличная репутация? Вряд ли. Компании, которые это поняли и используют эмоции как способ сблизиться с пользователям, уже активно захватывают не только гаджеты, но и сердечки новых юзеров.

Но как появляются пуши, которые вызывают у людей ощущение живого диалога? Как сделать кнопку, в которой пользователь найдёт не идеальный, а «свой» инструмент и расшарит скрины вашего приложения в соцсетях? Точно не по заказу. Такие тексты рождаются из эмоций и часто — когда уже нечего терять. Привет! Меня зовут Вика, сегодня расскажу о создании такой завирусившейся кнопки.

Читать далее

Принтер этикеток, или Как бэкендеры писали десктоп-приложение

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

Представьте команду бэкенд-разработчиков, которые привыкли писать бэкенды на .NET и немного фронтенд на Typescript + React. Это мы, ага. А теперь представьте, что этой команде прилетает задача: написать рабочее десктоп-приложение для печати этикеток.

Сложно даже подумать о таком? А с нами всё так и случилось! Сегодня расскажу, как бэкендеры писали приложение для Windows, опираясь на привычную для себя строгую структуру кода, тесты и CI/CD, и о том, что из этого получилось.

Читать далее

Симулятор команды — вместо десятка ретроспектив

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

Сколько нужно времени, чтобы команда сработалась? Мы проводим ретроспективы, 1-1, призываем внешних фасилитаторов, проговариваем планы и решения, но чего-то не хватает. Всё это попытки рационализировать — объяснить, как нам друг с другом работается. Но есть же и чувства, а их сформулировать сложнее.

Однажды мы собрались с командой оффлайн. Я хотел, чтобы мы сплотились — вовлечённо поработали, почувствовав на собственном опыте, как себя ощущают коллеги в других ролях. Так появилась игра «симулятор команды». В этой статье расскажу, как в неё играть и как она может помочь вам.

Читать далее

Логика, эмпатия и упорная работа над собой: как стать настоящим продакт-оунером

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

Это очередная статья на тему «как прокачаться продакту». Однако рекомендовать в ней книги, подкасты или «100% работающие» фреймворки я не буду.

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

Читать далее

Сами со скрамом: как организовать работу команды самостоятельно

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

Представьте, что вы работаете по скраму, но без скрам-мастера. Его задачи распределены между участниками команды. Представили? Отлично! Усложним задачу: представьте, что тимлида тоже нет. «Хаос» — скажете вы? Вовсе нет! Мы так работаем уже несколько лет.

Привет, я — Иван Зверев, фулстэк в Додо. Сегодня я расскажу о том, как круто может самоорганизоваться здоровая команда, если довериться ей, обозначить прозрачные правила работы и дать свободу экспериментировать с процессами. Вперёд!

Читать далее

Swipe to Pay, или Как мы переписали слайдер оплаты на Compose

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

В Дринкит был анимированный компонент на MotionLayout — слайдер быстрой оплаты в меню. Его и сейчас можно увидеть, когда вы добавляете продукты в корзину. Проведя по нему, вы оплатите заказ, а тапнув — перейдёте к покупкам.

Так почему «был»? У компонента накопилось немало багов, а самому слайдеру понадобился новый функционал. Реализовать его на MotionLayout было сложно, так что мы решили переписать компонент на Compose.

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

Читать далее

Функциональное программирование в Android. Побочные эффекты и ELM-архитектура

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

В финальной статье цикла про функциональное программирование в Android мы соберём знания, полученные в предыдущих частях. И, конечно, применим их на практике — соберём скелет приложения для медитации.

Практиковаться будем не на ViewModel, а на The Elm Architecture — это паттерн управления состоянием, заимствованный из функционального языка Elm. Заодно узнаем об этом паттерне побольше, разобрав суть его ключевых компонентов. В общем, погнали!

Читать далее

По ту сторону океана: как мы съездили на Databricks Data + AI Summit

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

Представьте, что вы ни разу не выступали на конференциях или митапах, а тут решились и едете на ваше первое выступление, да не куда-нибудь, а на Data + AI Summit в Сан-Франциско. «Так не бывает!» — скажете вы, а я отвечу: «бывает!»

Привет! Это Женя Добрынин, Senior Data Engineer в Dodo Engineering. Сегодня я расскажу о том, как мы с коллегой ездили на конференцию в США, а заодно и о том, во сколько вам обойдётся такая поездка, и что нужно сделать, чтобы она состоялась.

Читать далее

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

Функциональное программирование в Android. Теория категорий и DI

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

Кульминация цикла о функциональщине в Android! Сегодня изучаем чистые функции — ещё один важный принцип функционального программирования.

Учтём контекст и познакомимся с сопутствующими терминами, раскрывающими суть чистых функций. А ещё обсудим место концепции Dependencies Injection в функциональном программировании. В общем, вперёд за новыми знаниями!

Читать далее

Функциональное программирование в Android. Cтруктуры данных и State Machine

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

Продолжаем погружение в мир функционального программирования! Тема новой статьи — функциональные типы данных и их структуры. Из неё вы узнаете о принципе неизменности данных, о понятии State Machine и о способах его применения в программировании.

А ещё мы исследуем функциональную библиотеку Kotlin Arrow, обсудим поддержку Null, поток данных и функциональную обработку ошибок, а также начнём проектировать Data и Domain слои демонстрационного приложения. В общем, скучать не придётся!

Читать далее

Функциональное программирование в Android. Знакомство с парадигмой

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

Расширяем кругозор. Слышали про парадигму функционального программирования? Если вы iOS-разработчик, то, наверное, да, а если вы Android-разработчик, то, скорее всего, нет. Пришло время это исправить.

Привет! Меня зовут Женя Бондарев. И сегодня мы поговорим о теории функционального программирования, её особенностях и о том, что она может дать вашему Android-приложению. А ещё начнём писать pet-проект на функциональной архитектуре. Поехали!

Читать далее

Улучшаем продуктовые решения, познавая мозг. Практические советы

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

Продакты — это мастера решений, да только мозг — не объективная машина для их принятия. Он умный, гибкий и с отличной памятью, но вечно что-то прячет за эмоциями, дедлайнами и Slack-уведомлениями.​

Любое решение — это когнитивный бой. Вы думаете, что думаете, но на деле это рацио с эмоциями спорят.​ Сидишь ты между ними и пытаешься не забыть, кто главный.​ Но проблема не в тебе, а в том, как работает мозг.​

Привет! Меня зовут Маша Молчанова, я Project Manager в команде Online Payments. Сегодня мы с вами и разберёмся, как улучшить принятие решений в продукте с помощью знаний о нашем мозге.

Читать далее

Решаем VRP-задачи, или Как мы в Додо доставку оптимизировали

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

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

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

Читать далее

«Мне комбо из трёх пицц, брат». Как работает Додо Бот для заказа пиццы голосом

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

Будущее уже здесь! Привет! Я Андрей Ежов, менеджер продукта в юните CVM — Customer Value Maximization. Недавно мы запустили бота для голосового заказа пиццы в Telegram.

Как это работает? Смотри: отправляешь голосовое сообщение, бот подбирает нужное блюдо, а тебе остаётся только проверить заказ и оплатить его.

А вот о том, чем нам помог бот, как с его помощью мы ускорили процесс заказа на 77%, почему вообще выбрали бота и какому бизнесу ещё подойдёт такой вариант, я расскажу в этой статье. Будет интересно!

Читать далее
1
23 ...

Информация

Сайт
dodoengineering.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия