Pull to refresh
19
-3
Мазеин Михаил @navvygator

Engineering Manager

Send message

Задача готова! Или нет? Definition of Done и зачем он нужен

Level of difficultyEasy
Reading time5 min
Views5.5K

Менеджер: Эта задача готова?
Разработчик: Да.
Менеджер: Давайте катить на пользователей?
Разработчик: Давайте.
Менеджер: Что‑то не вижу функциональности на продакшене?
Разработчик: Ну, нам нужно еще пару дней — пройти код‑ревью, подождать, чтобы QA протестировали, собрать и выкатить релиз в прод, сделать несколько миграций данных, и потом мы откроем фичу для пользователей.
Менеджер: Но ты же сказал, что задача готова?
Разработчик: Да.

Думаю, многие из нас были свидетелями или участниками подобного диалога. Каждая сторона считает, что задача готова, но понимание состояния готовности разительно отличается. В итоге у каждой из сторон ожидания сильно расходятся с реальностью, что негативно влияет на коммуникацию между ними и, в целом, на развитие продукта. Так, как же этого избежать?

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments13

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

Reading time11 min
Views9.2K

Существует множество разных подходов к построению архитектуры серверных приложений. В данной статье рассмотрим Event-driven архитектуру (она же событийно-ориентированная). Рассмотрим основные принципы, как перейти от связей Компонент А <-> Компонент В, к связям через события Компонент А -> Событие А -> Компонент Б и зачем это нужно?

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments14

Настроили мониторинг. Что дальше?

Reading time8 min
Views3.3K
Всем привет! Меня зовут Мазеин Михаил, я занимаюсь бекенд-разработкой в ManyChat.
Одна из моих задач — анализ и повышение качества нашего продукта через системы мониторингов, алармов и сопутствующих процессов. Я на своем опыте убедился в том, что выстроить мониторинг — недостаточно. Сегодня я поделюсь тремя историями из жизни нашей команды: расскажу, как мы искали решения и какие выводы сделали. На мой взгляд, пост может оказаться полезен и разработчикам, и QA-инженерам, и системным администраторам, и тимлидам/техлидам.

Эта статья основана на моем докладе с онлайн-конференции TechLead Conf 2020. Если вам приятнее смотреть видео, оно доступно на YouTube.



Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Redis на практических примерах

Reading time11 min
Views105K

Redis — достаточно популярный инструмент, который из коробки поддерживает большое количество различных типов данных и методов работы с ними. Во многих проектах он используется в качестве кэшируещего слоя, но его возможности намного шире. Мы в ManyChat очень любим Redis и активно используем его в нашем продукте для решения огромного количества задач. Про некоторые интересные кейсы использования этой in-memory key-value базы данных я расскажу на примерах. Надеюсь, вам они будут полезны, и вы сможете применить что-то в своих проектах.

Рассмотрим следующие кейсы:

  • Кэширование данных (да, банально и скучно, но это классный инструмент для кэширования и обойти стороной этот кейс, кажется будет не правильно)
  • Работа с очередями на базе redis
  • Организация блокировок (mutex)
  • Делаем систему rate-limit
  • Pubsub — делаем рассылки сообщений на клиенты

Буду работать с сырыми redis командами, чтобы не завязываться на какую-либо конкретную библиотеку, предоставляющую обертку над этими командами. Код буду писать на PHP с использованием ext-redis, но он здесь для наглядности, использовать представленные подходы можно в связке с любым другим языком программирования.


Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments14

Да кто вообще такой этот продуктовый разработчик?

Reading time8 min
Views13K
Сегодня в названиях вакансий всё чаще появляются приставки «продуктовый» — дизайнер, аналитик, разработчик… Компании, придерживающиеся продуктового подхода, ожидают от кандидатов определённого образа мышления, хороших технических скиллов бывает недостаточно. Меня зовут Михаил Мазеин, я тот самый продуктовый разработчик в ManyChat, занимаюсь бекэндом и участвую в процессе найма. Давайте расскажу, как это выглядит изнутри.

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


@innubis

Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments16

Обработка миллионов событий в сутки при помощи каскадов очередей

Reading time8 min
Views7.5K
Под капотом нашего продукта крутятся сотни, тысячи, а в некоторых сервисах и миллионы очередей, через которые проходит огромное количество данных. Все это нужно каким-то магическим образом обрабатывать и не застрелиться. В данном посте я расскажу, какие архитектурные подходы мы используем у себя, имея достаточно скромный стэк технологий и не имея маленького дата-центра у себя в «кладовке».


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments8

5 декабря, ManyChat Backend MeetUp

Reading time3 min
Views1.3K
Всем привет!

Меня зовут Михаил Мазеин, я — ментор Backend community ManyChat. 5 декабря в нашем офисе пройдёт первый Backend Meetup.

В этот раз мы поговорим не только про разработку на PHP, но и затронем тему использования баз данных.

Начнём с истории про выбор инструментов для вычисления математических формул. Продолжим фундаментальной темой выбора подходящей базы данных. А закончим встречу большим докладом о тюнинге сервера высоконагруженного проекта с помощью тонкой конфигурации nginx и php-fpm на основе данных о движениях запросов вместо постоянного увеличения количества серверов.



Участников ждут доклады от инженеров ManyChat и, конечно, общение. Встречать гостей будем в 18:30, а начнем митап в 19:00. Регистрация доступна по ссылке, а подробная программа мероприятия — под катом.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments0

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity