Dodo Engineering – Telegram
Dodo Engineering
3.65K subscribers
868 photos
32 videos
3 files
691 links
Рассказываем о том, как развиваем IT в Dodo Brands.

Habr https://habr.com/companies/dododev/
Вакансии https://dodoteam.ru/vacancies/
Download Telegram
«У вас новое достижение — ваше приложение добавили в App Store»

Приложение «Додо Курьер» для курьеров помогает следить за заказами, брать их в работу, строить маршрут. По статистике четверть курьеров пользуется Android-версией. А теперь приложением сможет пользоваться любой курьер с любым смартфоном, потому что мы его добавили в AppStore.

Но вот процесс добавления был тем ещё квестом:

— Для публикации закрытых приложений для бизнеса в AppStore нужно иметь Enterprise аккаунт. Но нам отказали в его предоставлении спустя 4 месяца ожидания без объяснения причины.
— Отказывали в публикации приложения 5 раз.
— Мы придумывали обходной путь с публикацией в обычном аккаунте, но тоже не получалось.
— В первые пару раз ревьюеры обнаруживали особо скрытые баг, которые тяжело воспроизвести.
— Мы неправильно просили разрешения геолокации. Без уважения видимо:).
— А последний отказ был вообще без объяснений.

Всё вот это заняло примерно полгода и каким-то чудом нам удалось добавить приложение. Воистину это чудо!
Роботы уже «захватили» мир

Цитируем Фёдора:

«Компания xRobotics, созданная российскими инженерами, запустила вместе с Аленой Тиховой пицца-робота в Dodo Pizza в городе Оксфорд в Миссисипи в США 🔥 Они сделали это, несмотря на все сложности, ограничения, карантины. Без сотен миллионов инвестиций. Гордость и восторг! Это видео снято вчера. На нем Алена одна «раскидала» все заказы в пик продаж в паре с роботом 🤖:)»

Роботы уже захватили мир, чтобы делать нам пиццу.
«Включаем» автоматизацию разработки приложений для Китая

Недавно мы закончили долгую работу над приложением для WeChat, через которое мы получаем заказы в наших пиццериях в Китае. В планах у нас похожее приложение для Alipay. Но если они похожи, то почему бы не «включить» автоматизацию, чтобы не делать одну и ту же работу снова? Отличная идея, именно поэтому Артём Казаков, наш разработчик (что работал над mini-app для WeChat), так и сделал:

— переписал сборщик на webpack, чтобы код на WeChat автоматически превращался в сборке в код, который понимает Alipay;
— настроил управление билдом приложения и снизил порог вхождения, чтобы любой фронтендер, который пришел в проект Китая в Додо с легкостью смог погрузиться в него.

В результате, разрабатывая одно приложение, мы получаем два!

«Официальная» часть закончилась — теперь технические подробности.

Настройку управления билдом мы решили за 10 недель — переписали сборщик на webpack (версии 4.4) с использованием TypeScript 3.9. Размер билда уменьшился почти в 2 раза, писать код стало проще — теперь код на TypeScript с поддержкой типов, чего очень не хватало в начале проекте, и всем знакомый SCSS. Убрали большое количество легаси, подправили основные части приложения и само мини-приложение WeChat стало работать быстрее.

Для второй задачи внесли несколько изменений в сборщике:

— Alipay принимает в верстке названия компонентов только в виде page-with-tabbar, поэтому заменили camelCase названия всех компонентов.
— Структура файлов Alipay и WeChat одинакова, однако расширения у файлов отличаются: .wxss —> .ascc, .wxml —> .axml. Решилось это обычным file-loader модулем в webpack.
— Для логики приложения в TypeScript через process.env передавали среду (wechat | alipay), и получали её внутри приложения. Поправили типы, компоненты, общение между родителем и дочерним компонентом.

Оба приложения запускаются командами «yarn start:wechat» и «yarn start:alipay». В двух консолях одновременно компилируются два приложения и отображается UI в двух IDE.

Alipay и WeChat у нас работают на одной кодовой базе. Каждая фича разрабатывается один раз и сразу работает в обоих мини-приложениях. Релиз идёт примерно по такой же схеме, что и у WeChat. Однако для Alipay автоматическая система релизов пока не сделана. Клиенты в пиццериях в Ханчжоу довольны появлением мини-приложения Alipay и активно его используют.

В планах сделать из этого Open Source проект: убрать артефакты, упростить и дописать автоматическую систему релизов для обеих платформ.

Примечание. Контекст истории у нас здесь — «Как выйти на китайский рынок с mini-app для WeChat, чтобы не прогореть», где мы подробно рассказали как делали мини-приложение в китайской соцсети.
Audio
Ничего такого. 2-й сезон, 8-й выпуск, гость — Света Аюпова
Тёплый плед СКБ Контур

Гость подкаста: Света Аюпова из СКБ Контур. Света находит и проверяет новые бизнесы для Контура. Как-то так получилось, но Света нас убедила, что СКБ Контур — идеальное место для работы. В компании:

— Хорошие руководители, многие из которых работают в компании по 10 лет (как и большинство сотрудников).
— Равенство всех сотрудников на деле, а не на словах.
— Атмосфера как в казантипе, но без вот этого всего.
— Люди не уставшие, лица не серые.
— Все рано уходят домой.
— Много доверия, которое помогает быстро принимать решения.

Как следствие, в компании малая текучка. Многие работают по 5-10-15 лет (шёпотом: «И даже больше...») Если кажется, что так можно «закостенеть», то нет — ведь можно расти внутри. Для примера — руководитель Светы пришёл из техподдержки. Так что вроде всё хорошо...

Об этом и многом другом — в подкасте. Ведут: Борис Гулай и Антон Савченков.

Слушайте подкаст здесь:

Buzzsprout
SoundCloud
Apple Podcasts
Google Podcasts
Яндекс. Музыка
ВК
Раз уж мы начали говорить про «долгожителей» (в подкасте), то интересно узнать сколько «долгожителей» среди нас. Сколько лет работаете на текущем месте?
Anonymous Poll
26%
1 год или меньше
39%
1-3 года
20%
3-5 лет
9%
6-9 лет
5%
10-12 лет
1%
12-15 лет
1%
Больше 15 лет
«Куберпанк» — мир будущего, где все работает через Kubernetes

В феврале мы переехали на Kubernetes. Он готов принимать кассу доставки, трекер, мобильное API, платёжный шлюз и даже легаси-фасад. В феврале прошлого года мы начали проект Production Ready Kubernetes по переезду. Планировали управиться за 3 месяца, и, как видите, переехали через год.

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

Но неудобства можно и потерпеть ради преимуществ.

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

Отдельная благодарность нашим разработчикам и SRE за то, что вывезли масштабный проект!
К чему приводят статьи про доступность

Примерно пару лет назад наши iOS-разработчики Миша Рубанов и Лёша Берёзка стали писать статьи. И некоторые из них — про доступность приложений для людей с проблемами зрения.

И к чему их это привело?

К тому, что Мишу и Лёшу пригласили как экспертов провести несколько лекций про доступность мобильных приложений на курсе Валерии Курмак про цифровую доступность. На курсе были разные специальности: и iOS, и фронтенд, и дизайн. Компании тоже были разные, например, wrike или mоs.ru.

Миша и Лёша рассказали 6 часов материала лекциями по 2 часа (с перерывами). На некоторых было около 40 слушателей за раз (из 80 на курсе). Подготовка заняла примерно 2,5 месяца по вечерам — вышло 500 слайдов. Пара из них на картинке.

Материал ещё пригодится для ещё одного потока в будущем, и ещё одного проекта, о котором расскажем позже (интрига!).

Лекции иллюстрировали на примере наших приложений, поэтому не удивляйтесь если услышите «Додо» и «доступность» в одном предложении.
В фантастических фильмах или роликах о гаджетах и технике, которая нас будет окружать через 10-20-30 лет, чаще всего показывают разные прозрачные экраны, голограммы или проекции на руку, лоб или пупок. Чтобы всем этим управлять нужен всего-то один палец. Всё выглядит красиво и фантастично. Но что, если подобные концепции, возможно, ложные? Что, если взаимодействие с интерфейсом не должно концентрироваться в одном пальце? Что, если будущее взаимодействия в руках?
Скейт, выгорание, велосипеды и программирование

И прямо, и косвенно они связаны. Обычно хобби занимаются ради удовольствия, а результат вторичен. Когда результат становится первичен — хобби превращается в рутину, а она может вести к выгоранию.

Об этом наш разработчик Дима Афонченко написал статью «Про хобби, выгорание и получение удовольствия от программирования. Через велосипедостроение», где и затронул связь выгорания и рутины на своём примере.

Цитируем.

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

Но как связано выгорание и «велосипеды»?

Цитируем.

[...Как только вы заставите человека перестать изобретать «велосипеды», вы отнимите у него ту часть работы, которая позволяла ему с интересом узнавать новое, и тем самым превратите жизнь в дистиллированную рутину...Поэтому «велосипедостроение» не просто полезно, а даже необходимо — оно привносит в ежедневные задачи радость первооткрытия, превращая работу в хобби.]

Вот так. В общем, рекомендуем к прочтению.
Open Source в Dodo Engineering пополнился новым проектом

Заканчиваем рабочую неделю хорошими короткими новостями. У нас появился еще один проект с открытым исходным кодом – Prometheus Shell Exporter. Это экспортер для Prometheus, который умеет выполнять PowerShell и bash скрипты и превращать их stdout в метрики, понятные для Prometheus. Инструмент появился в рамках решения проблемы мониторинга свободных портов на windows-машинах, но способен решать больше задач.

GitHub
Авторы — наши SRE: Виталий Уваров и Сергей Бухаров
#opensource #dodoopensource
*Где-то в офисе Dodo Engineering

Чем дольше вглядываемся в картинку, тем больше кажется, что это аллегория на работу.
Почему мы выбираем партнерский подход при поиске кандидатов в IT?

Потому что он эффективнее. Мы тут строим DevRel с блэкджеком и единым процессом по работе с людьми в IT, поэтому «классический» агентский найм не подходит: когда рекрутер «на потоке» ищет кандидатов, «кидается» ими и забывает, потому что нового искать надо. Так дело не пойдёт — нам же надо, чтобы кандидат подходил на 99 и 9 в периоде процентов, чтобы мягко и незаметно прошёл онбординг, и влился в одну из команд — чтобы «тунц», и подошёл, как будто всегда тут был. Поэтому только партнёрский подход.

А подробнее как мы с ним работаем, рассказала великолепная Юлия Яковлева, наша IT Hiring Leader.
Audio
2-й сезон, 9-й выпуск Ничего Такого. Гость: Юра Филатов. Ведущий: Антон Савченков.
А нужна ли вам цифровая трансформация?

Гость подкаста — Юра Филатов. Одна из областей его деятельности — информационный консалтинг или, иначе говоря, он помогает с трансформациями. Юра нам эмоционально, чуть жёстко, с «иллюстрациями» и без «маркетингового налёта» поведал о мнооооогих нюансах «оборотной» стороны цифровизации. И почему она часто и не нужна.

Это было незабываемо. Рекомендуем к прослушиванию.

Ведущий — «всетайнывыведывающий» Антон Савченков

Подкаст можно послушать здесь:

SoundСloud
Buzzsprout
Google Подкасты
Яндекс. Музыка
ВК Подкасты
Dodo Pizza уходит из Китая

Китай — это много классных вещей.

— Классная интернациональная команда, бренд, продукт, дизайн, вкус, маркетинг, приложения для WeChat и AliPay, адаптация вкусов, исследования, ребрендинг, новые технологии, изобретения, команда, которая реально делала невозможное, опыт, знания, инсайты, открытия, эмоции, усилия, творческой энергии.

Ресурсы и возможности для развития есть, но мы закрываемся — 1 апреля совет директоров Dodo Brands принял решение о закрытии пиццерий в Китае.

Если кратко, то причины в этом:

— Слишком далеко ушли от ключевой бизнес-модели, что лишает в будущем глобальной синергии.
— Dodo Brands ещё молодая и не такая большая компания и важен фокус. Закрытие Китая высвободит ресурсы: внимание, команду, финансы для других направлений, которые могут принести больше отдачи на вложенные ресурсы и усилия.

Подробности Фёдор написал в трёх постах у себя на канале:

Первый.
Второй.
Третий.

А у нас просто грустный пост...
Скрываем лица

Как вы знаете, на наших кухнях есть камеры и мы ведём постоянные трансляции всего, что происходит на кухнях. А ещё у нас есть пиццерии в разных странах. К сожалению, в некоторых из них есть ограничения на передачу биометрических персональных данных, и в некоторых странах камеры были вовсе отключены. Конечно, мы не могли это оставить без внимания.

Недавно мы выкатили в продакшн решение проблемы — модуль маскировки от Ivideon. Он «затирает» лица на трансляциях с наших пиццерий, используя возможности и наработки наших друзей из Ivideon. Работа над этим решением шла целый год, но вот недавно мы наконец начали тестировать модуль. Первой тестовой страной стала Эстония. Багов ещё хватает, но начало положено. Посмотрите трансляцию, где этот модуль работает.

Правда, неплохо?
Читаем айтишные книжки за вас и обсуждаем, что важного/полезного узнали

Наши ребята регулярно читали и обсуждали книги. В какой-то момент они решились на нечто более публичное и замутили свой подкаст «Читаем вместе». Подписывайтесь, чтобы послушать:

Яндекс.Музыка
Deezer
Amazon Music
Apple Podcasts
Зачем это вам? Чтобы:

— Не надо было читать самому, это же очевидно.
— Поддержать диалог. Послушали и уже можете с умным видом поболтать по теме у кофе-машины, на митапчике, на собесе, в холиваре на просторах интернета.
— Лучше усвоить/осознать/переварить. Когда читаешь в одни глаза, запоминаешь что-то, но мало. Когда читаешь в много глаз, а потом обсуждаешь прочитанное, запоминаешь как отче наш.
— Поддержать нас или сказать, что мы отстой!

Первой читаем вместе Fundamentals of Software Architecture. Выпуски по 30-40 минут, у микрофона Сергей Зарубин, Юрий Пастушенко, Евгений Биккинин и Женя Пешков. По времени, как пара треков на вашем Spotify, от вас не убудет, а нам приятно, заодно можете сказать, что понравилось (нам будет приятно), что не понравилось (мы будем страдать, но лица будут каменными). Сказать можно в нашем Телеграм-чате.
____
КОЛ ТУ ЭКШОН: пишите в комментарии, какие книги читать за вас в следующих выпусках.
Каждый год 21 апреля мы вспоминаем одну историю, чтобы не повторять ошибок.

Примерно так, как на картинке слева, выглядел график запросов к Dodo IS 21 апреля 2018 года. В этот день произошло Великое падение Dodo IS.

Падение произошло как раз во время самой масштабной рекламной кампании на ТВ с бюджетом 100 млн рублей. Но мы не подготовились идеально и когда начали получать 100-150 заказов в минуту, Dodo IS достигла предела вертикального масштабирования и больше не могла обрабатывать заказы.

Система «упала» примерно на 3 часа, периодически восстанавливаясь, но сразу же падала вновь. Эта авария стоила миллионы рублей, когда несколько часов клиенты не могли сделать заказ ни на сайте, ни в приложении.