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

Автоматизируем 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 мин
Охват и читатели841

Представьте, что вы ни разу не выступали на конференциях или митапах, а тут решились и едете на ваше первое выступление, да не куда-нибудь, а на 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 мин
Охват и читатели918

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

KotlinJS в GitHub Actions

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

GitHub Actions (GHA) — отличный инструмент для настройки CI/CD, а в GitHub Marketplace можно найти тысячи готовых GHA под любые задачи. Но всегда же найдётся процесс, который захочется настроить под себя. Тогда нам придётся написать кастомный GHA.

Привет! Это Макс Качинкин, Android Tech Lead в Додо. В этой статье я покажу, как создать свой GHA на Kotlin/JS, используя плагин Kotlin Multiplatform, и поделюсь готовым шаблоном в GitHub, с помощью которого вы сможете быстро написать собственный экшен на Kotlin/JS. Погнали!

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

Информация

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