Люди наше всё, поэтому у нас появился DevRel
С января мы строим свой DevRel с блэкджеком и единым процессом по работе с людьми в IT. Начинаем с момента, когда человек совсем ничего не знает о нас, а заканчиваем моментом, когда он уходит из компании. За это отвечают три боевые подкоманды: IT brand – отвечает за всё, что транслируем в мир, IT hiring – за найм, и IT HR – за всё, что помогает разработчикам чувствовать себя комфортно и не выгорать, например. Тема новая и сложная, без наглядности не разберешься. Поэтому Лиза Швец, наш капитан и операционный директор Dodo Engineering, по совместительству, рассказала и показала, что мы делаем (и зачем) подробнее.
С января мы строим свой DevRel с блэкджеком и единым процессом по работе с людьми в IT. Начинаем с момента, когда человек совсем ничего не знает о нас, а заканчиваем моментом, когда он уходит из компании. За это отвечают три боевые подкоманды: IT brand – отвечает за всё, что транслируем в мир, IT hiring – за найм, и IT HR – за всё, что помогает разработчикам чувствовать себя комфортно и не выгорать, например. Тема новая и сложная, без наглядности не разберешься. Поэтому Лиза Швец, наш капитан и операционный директор Dodo Engineering, по совместительству, рассказала и показала, что мы делаем (и зачем) подробнее.
YouTube
DevRel в Dodo Engineering. Елизавета Швец. 15 февраля 2021
Вакансии в Dodo Engineering: https://dodo.dev/manager#jobs
Бриллиантовая статья про Бриллиантовый чекаут™
Как-то в начале 2019 мы собрали аналитику по адресам в заказах и так получилось, что бо́льшая часть клиентов заказывает доставку на одни и те же адреса и не устанавливают отложенное время. Получается, они хотят получить заказ «туда же, куда и в прошлый раз и как можно быстрее». И мы решили поменять флоу оплаты заказа и сделать его максимально простым именно для таких клиентов. В сферическом вакууме это можно было сделать за 2 месяца, а в реальности вышло за 9. Всё потому, что в проекте были собраны, наверно, все ошибки из возможных, которые больше не будем повторять. А Лёша Березка об этом рассказал. Наслаждайтесь)
Как-то в начале 2019 мы собрали аналитику по адресам в заказах и так получилось, что бо́льшая часть клиентов заказывает доставку на одни и те же адреса и не устанавливают отложенное время. Получается, они хотят получить заказ «туда же, куда и в прошлый раз и как можно быстрее». И мы решили поменять флоу оплаты заказа и сделать его максимально простым именно для таких клиентов. В сферическом вакууме это можно было сделать за 2 месяца, а в реальности вышло за 9. Всё потому, что в проекте были собраны, наверно, все ошибки из возможных, которые больше не будем повторять. А Лёша Березка об этом рассказал. Наслаждайтесь)
Хабр
Как мы накосячили пока делали Бриллиантовый чекаут™ 9 месяцев, а планировали 2
В начале 2019 мы собрали аналитику по адресам в заказах и так получилось, что бо́льшая часть клиентов заказывает доставку на одни и те же адреса. При этом они не устанавливают отложенное время....
«Трушный» подкаст для разработчиков: нужен ваш фидбэк!
Наши разработчики Женя Пешков, Женя Биккинин, Юра Пастушенко, Кирилл Левченко и Сергей Зарубин, выпустили пилот подкаста «Читаем вместе». В первом выпуске подкаста ребята читают и обсуждают книгу «Fundamentals of Software Architecture». Если интересно послушать «кухонные разговоры» про «тру» бизнес-разработку, облаченные в обсуждение книги — это то, что надо. Мы хотим разобраться выпускать ли его дальше, поэтому просим вас — поделитесь, пожалуйста, фидбэком здесь или под постами: первым или вторым.
Наши разработчики Женя Пешков, Женя Биккинин, Юра Пастушенко, Кирилл Левченко и Сергей Зарубин, выпустили пилот подкаста «Читаем вместе». В первом выпуске подкаста ребята читают и обсуждают книгу «Fundamentals of Software Architecture». Если интересно послушать «кухонные разговоры» про «тру» бизнес-разработку, облаченные в обсуждение книги — это то, что надо. Мы хотим разобраться выпускать ли его дальше, поэтому просим вас — поделитесь, пожалуйста, фидбэком здесь или под постами: первым или вторым.
SoundCloud
Читаем вместе
Подкаст о книгах. Мы много читаем. Но иногда этого мало. Чтобы лучше усваивалась информация, мы читаем вместе.
Наш формат:
1. Выбираем книгу.
2. Определяем часть, которую необходимо прочитать за неде
Наш формат:
1. Выбираем книгу.
2. Определяем часть, которую необходимо прочитать за неде
Мегаскрам и портал
Сегодня у нас подкаст с Ксенией Мешковой — овнером в команде Райффайзенбанк. Она занимается развитием внутреннего корпоративного портала. Ксения рассказала про портал (много), как и зачем они его делали и как «докатились» до LeSS в команде из 70 человек через скрам и аджайл. А ещё у них там есть гемба. Разработчики, конечно, кредитки не продают, всё полегче. Гемба «на минималках».
Подкаст доступен на площадках:
SoundCloud
Google Podcasts
Яндекс.Музыка
Buzzsprout
Сегодня у нас подкаст с Ксенией Мешковой — овнером в команде Райффайзенбанк. Она занимается развитием внутреннего корпоративного портала. Ксения рассказала про портал (много), как и зачем они его делали и как «докатились» до LeSS в команде из 70 человек через скрам и аджайл. А ещё у них там есть гемба. Разработчики, конечно, кредитки не продают, всё полегче. Гемба «на минималках».
Подкаст доступен на площадках:
SoundCloud
Google Podcasts
Яндекс.Музыка
Buzzsprout
Forwarded from Kostoev Live (та самая Курилка рестораторов) (Магомед Костоев)
В команду @doner42ru разыскивается .NET разработчик 🥰 Решили на один день похулиганить и повесить вот такое объявление на стекле 😅 На последней картинке - куар код. Наведи на него фотокамеру телефона и появится ссылочка на вакансию.
Что такое «легаси»?
Понятно, что это не «хороший код», но какой? Старый, не поддерживаемый или не обновляемый, а может просто чужой? Есть ли «полноценное» определение «легаси», на которое можно ссылаться? Кажется, мы наконец разобрались, что же это такое.
Понятно, что это не «хороший код», но какой? Старый, не поддерживаемый или не обновляемый, а может просто чужой? Есть ли «полноценное» определение «легаси», на которое можно ссылаться? Кажется, мы наконец разобрались, что же это такое.
Хабр
Код без тестов — легаси
Если вы работаете в IT, то о легаси вы слышите часто — обычно с множеством негативных коннотаций. Понятно, что это не «хороший код», но какой? Может старый, может не поддерживаемый или не обновляемый,...
Как разработать мини-приложение для Китая?
В Китае легко затеряться. Наши первые пиццерии в Китае работали по привычной модели: точка с залом на второй линии «на доставку» не в людном месте. Но модель не «взлетела»: рядом с пиццерией десятки лавок со всеми видами еды, вроде боула с мидиями или хрустальной лапши, где клиент получит еду быстрее. Можно было бы сделать своё приложение с доставкой, но на китайских экранах сотни приложений, где можно заказать еду, и наше бы просто потерялось. Поэтому мы «пошли» в WeChat и его экосистему мини-приложений. А теперь рассказали об этом — получился большой «разбор» китайских приложений и экосистемы страны. Пригодится, если решите разрабатывать своё мини-приложение для Китая.
В Китае легко затеряться. Наши первые пиццерии в Китае работали по привычной модели: точка с залом на второй линии «на доставку» не в людном месте. Но модель не «взлетела»: рядом с пиццерией десятки лавок со всеми видами еды, вроде боула с мидиями или хрустальной лапши, где клиент получит еду быстрее. Можно было бы сделать своё приложение с доставкой, но на китайских экранах сотни приложений, где можно заказать еду, и наше бы просто потерялось. Поэтому мы «пошли» в WeChat и его экосистему мини-приложений. А теперь рассказали об этом — получился большой «разбор» китайских приложений и экосистемы страны. Пригодится, если решите разрабатывать своё мини-приложение для Китая.
Хабр
Как выйти на китайский рынок с mini-app для WeChat, чтобы не прогореть
В Китае легко затеряться. Наши первые пиццерии в Китае работали по привычной модели: точка с залом на второй линии, не в людном месте, и работала на доставку. Но...
Как сделать корпоративные ценности настоящими, а не пластмассовыми
Корпоративные ценности — это некие убеждения и принципы, которые все должны соблюдать, вроде «быть ответственным», «двигаться вперёд» и всё такое. Но зачем их соблюдать, если непонятно откуда они взялись? Зачем кто-то когда-то их выбил на скрижалях и повесил в главном зале? Без ответа на эти вопросы желание им следовать скорее не появится — они пластмассовые, не живые. Возможно поэтому в ЦИАН сделали по-другому — ценности списали с реальных людей, один из которых побывал у нас в гостях, а всем новичкам рассказывают как они появились и зачем.
Как готовили ценности, важны ли они при найме и что такое словарь «разработческих» терминов, поговорили с Анной Штенгауэр (HR BP) и Мишей Юматовым (руководителем продуктовой разработки).
Подкаст доступен на площадках:
Buzzsprout
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
Корпоративные ценности — это некие убеждения и принципы, которые все должны соблюдать, вроде «быть ответственным», «двигаться вперёд» и всё такое. Но зачем их соблюдать, если непонятно откуда они взялись? Зачем кто-то когда-то их выбил на скрижалях и повесил в главном зале? Без ответа на эти вопросы желание им следовать скорее не появится — они пластмассовые, не живые. Возможно поэтому в ЦИАН сделали по-другому — ценности списали с реальных людей, один из которых побывал у нас в гостях, а всем новичкам рассказывают как они появились и зачем.
Как готовили ценности, важны ли они при найме и что такое словарь «разработческих» терминов, поговорили с Анной Штенгауэр (HR BP) и Мишей Юматовым (руководителем продуктовой разработки).
Подкаст доступен на площадках:
Buzzsprout
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
Новый Open Source проект альтернативного хранилища сессий для ASP.NET на основе Cosmos DB
У нас появился ещё один проект с открытым исходным кодом – Azure Cosmos DB ASP.NET Session State Provider. Это альтернативное хранилище сессий для ASP.NET на основе Cosmos DB.
Для хранилища сессий ASP.NET обычно используют SQL Server или Redis. Но у Redis страдает доступность ради долговечности, а SQL Server не обеспечивает масштабируемости при записи.
Поэтому наш SRE Георгий Полевой использовал Cosmos DB в качестве хранилища сессий ASP.NET приложений. Так появился Open Source проект, который призван решить эти проблемы. Он обеспечивает гарантированную низкую задержку и масштабируемость.
Особенности:
— Локи хранятся отдельно, для оптимизации записей при постановке лока.
— Расходуется примерно 30-35 RU на запрос с блокировкой. В случае Read-Only, расходуется около 2 RU.
Подойдёт для приложений, которые требуют высокой масштабируемости и низкой задержки.
Подробнее о проекте:
— GitHub
— NuGet
#opensource #dodoopens
У нас появился ещё один проект с открытым исходным кодом – Azure Cosmos DB ASP.NET Session State Provider. Это альтернативное хранилище сессий для ASP.NET на основе Cosmos DB.
Для хранилища сессий ASP.NET обычно используют SQL Server или Redis. Но у Redis страдает доступность ради долговечности, а SQL Server не обеспечивает масштабируемости при записи.
Поэтому наш SRE Георгий Полевой использовал Cosmos DB в качестве хранилища сессий ASP.NET приложений. Так появился Open Source проект, который призван решить эти проблемы. Он обеспечивает гарантированную низкую задержку и масштабируемость.
Особенности:
— Локи хранятся отдельно, для оптимизации записей при постановке лока.
— Расходуется примерно 30-35 RU на запрос с блокировкой. В случае Read-Only, расходуется около 2 RU.
Подойдёт для приложений, которые требуют высокой масштабируемости и низкой задержки.
Подробнее о проекте:
— GitHub
— NuGet
#opensource #dodoopens
Delta Lake и поддержка Kotlin в Apache Spark
Нельзя просто так взять и не пойти на митап, где будет выступать Иван Трусов и Паша Финкельштейн. Трехслойная архитектура раскладки данных, особенности Delta-формата, упрощающие ETL процессы и «кишки» процесса написания поддержки ещё одного JVM-языка в Apache Spark — через неделю, 25 марта (в четверг) в 18 вечера MSK на DE or DIE #6.
Формат: Онлайн-трансляция на YouTube. Регистрируйтесь.
Нельзя просто так взять и не пойти на митап, где будет выступать Иван Трусов и Паша Финкельштейн. Трехслойная архитектура раскладки данных, особенности Delta-формата, упрощающие ETL процессы и «кишки» процесса написания поддержки ещё одного JVM-языка в Apache Spark — через неделю, 25 марта (в четверг) в 18 вечера MSK на DE or DIE #6.
Формат: Онлайн-трансляция на YouTube. Регистрируйтесь.
Почти распилили монолит, техчас и «латентный тимлид»
Гость выпуска — Анатолий Панов. Кратко о нём:
— руководит разработкой всех вертикалей в Авито;
— пишет код только «по фану»;
— не проводит интервью инженеров;
— раскусил в Борисе «латентного тимлида» (Борис, мы тебя любим, прости за термин), когда он «собеседовался» в рубрике «Сханти Бориса» как разработчик.
Поговорили про квартальные и годовые ОКR и ОКR-ревью, Performance Review, как почти распилили монолит, про техчас для новостей технического департамента, и прокачку функциональных коммьюнити.
Подкаст доступен на площадках:
Buzzsprout
Apple Podcasts
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
Гость выпуска — Анатолий Панов. Кратко о нём:
— руководит разработкой всех вертикалей в Авито;
— пишет код только «по фану»;
— не проводит интервью инженеров;
— раскусил в Борисе «латентного тимлида» (Борис, мы тебя любим, прости за термин), когда он «собеседовался» в рубрике «Сханти Бориса» как разработчик.
Поговорили про квартальные и годовые ОКR и ОКR-ревью, Performance Review, как почти распилили монолит, про техчас для новостей технического департамента, и прокачку функциональных коммьюнити.
Подкаст доступен на площадках:
Buzzsprout
Apple Podcasts
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
«У вас новое достижение — ваше приложение добавили в App Store»
Приложение «Додо Курьер» для курьеров помогает следить за заказами, брать их в работу, строить маршрут. По статистике четверть курьеров пользуется Android-версией. А теперь приложением сможет пользоваться любой курьер с любым смартфоном, потому что мы его добавили в AppStore.
Но вот процесс добавления был тем ещё квестом:
— Для публикации закрытых приложений для бизнеса в AppStore нужно иметь Enterprise аккаунт. Но нам отказали в его предоставлении спустя 4 месяца ожидания без объяснения причины.
— Отказывали в публикации приложения 5 раз.
— Мы придумывали обходной путь с публикацией в обычном аккаунте, но тоже не получалось.
— В первые пару раз ревьюеры обнаруживали особо скрытые баг, которые тяжело воспроизвести.
— Мы неправильно просили разрешения геолокации. Без уважения видимо:).
— А последний отказ был вообще без объяснений.
Всё вот это заняло примерно полгода и каким-то чудом нам удалось добавить приложение. Воистину это чудо!
Приложение «Додо Курьер» для курьеров помогает следить за заказами, брать их в работу, строить маршрут. По статистике четверть курьеров пользуется Android-версией. А теперь приложением сможет пользоваться любой курьер с любым смартфоном, потому что мы его добавили в AppStore.
Но вот процесс добавления был тем ещё квестом:
— Для публикации закрытых приложений для бизнеса в AppStore нужно иметь Enterprise аккаунт. Но нам отказали в его предоставлении спустя 4 месяца ожидания без объяснения причины.
— Отказывали в публикации приложения 5 раз.
— Мы придумывали обходной путь с публикацией в обычном аккаунте, но тоже не получалось.
— В первые пару раз ревьюеры обнаруживали особо скрытые баг, которые тяжело воспроизвести.
— Мы неправильно просили разрешения геолокации. Без уважения видимо:).
— А последний отказ был вообще без объяснений.
Всё вот это заняло примерно полгода и каким-то чудом нам удалось добавить приложение. Воистину это чудо!
Роботы уже «захватили» мир
Цитируем Фёдора:
«Компания xRobotics, созданная российскими инженерами, запустила вместе с Аленой Тиховой пицца-робота в Dodo Pizza в городе Оксфорд в Миссисипи в США 🔥 Они сделали это, несмотря на все сложности, ограничения, карантины. Без сотен миллионов инвестиций. Гордость и восторг! Это видео снято вчера. На нем Алена одна «раскидала» все заказы в пик продаж в паре с роботом 🤖:)»
Роботы уже захватили мир, чтобы делать нам пиццу.
Цитируем Фёдора:
«Компания 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, чтобы не прогореть», где мы подробно рассказали как делали мини-приложение в китайской соцсети.
Недавно мы закончили долгую работу над приложением для 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, чтобы не прогореть», где мы подробно рассказали как делали мини-приложение в китайской соцсети.