Техдир на пальцах
427 subscribers
36 photos
43 links
Просто о сложном — как думает технический директор.
📪 Связь: @wodevod
Download Telegram
💣 Как “модное” убило релиз

Или почему shiny tech stack ≠ успех

Сейчас в IT каждый месяц появляется “убийца” очередного фреймворка. И на хайпе неопытные (или просто увлечённые) разработчики стремятся затащить их в боевой проект. Ведь быстрее, легче, моднее!

На демо — всё летает. А в проде?

Просчитался, но где?
Был такой случай, бездумно взяли одну «супер» NoSQL базу для проекта, а потом страдали от роста трафика. В итоге 2 месяца убили на переписывание.


Нельзя тянуть инструменты в проект просто потому, что кто-то показал вам синтетические тесты производительности.
Потом вылезет:
- хреновая документация
- отсутствие большого комьюнити, некого даже спросить
- плохая интеграция с другими инструментами
- или он вообще для других задач

📤 Вывод?
Выбор технологий — это не “хочется”. Это ответственность за результат.

Никакие синтетические тесты и статьи “как у нас всё быстро” не заменят:
– обкатанности инструмента
– поддержки и комьюнити
– совместимости с продакшен-инфраструктурой

Проверенный стек — не значит “устаревший”.
Это значит, что он работает.
И вводить новый инструмент в прод может только тот, кто понимает последствия.
Хочешь экспериментировать? Делай pet-проект.
В коммерческом продукте цена ошибки слишком высока.

Подписывайся
🔥51👍1
🧠 Человек-комбайн

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

1️⃣ Первый этап
Команда обращается за всем именно к нему: помощь, проверка, советы.
Он — живая документация и мозг проекта.
Для бизнеса всё выглядит отлично: «три в одном, да ещё и без лишних затрат».

2️⃣ Второй этап
Постепенно «комбайн» устаёт: таски неинтересные, общения слишком много, помощи просят постоянно.
Он начинает раздражаться, отказывать, “зависимые” замыкаются.
Процессы начинают проседать — но пока это незаметно сверху.

3️⃣ Третий этап
Бизнес не замечает проблему, а специалист уже морально ушёл. Проходит немного времени, и вот он увольняется. И…

4️⃣ Судный день
Без него — никто не знает, как деплоить, где что лежит, как починить баг.
Документации нет, у разработчиков паника.
Прод падает. Клиенты жалуются. Команда — в ступоре.
Восстановление занимает недели. А иногда — проект просто не поднимается.

Как не угодить в ловушку?
Раздавайте ответственность. Не сливайте всё на одного “самого умного”.
Растите дублирующих специалистов. Пишите документацию.
Один супермен — это риск, а не преимущество.

Коромысло с одним ведром — всегда перевесит в одну сторону.


Подписывайся
👍3🔥1
🧱 Нужен тимлид, а не координатор задач

Фраза “у нас есть тимлид” сегодня почти ничего не значит.
Потому что в половине проектов под «тимлидом» скрывается просто координатор.
Он ставит задачи, следит за сроками, “держит в курсе” и… всё.

А кто выстраивает архитектуру?
Кто ревьюит код по сути, а не по табам?
Кто гасит техдолг и держит инженерный стержень?
Часто — никто
(Все в контексте малого бизнеса)

⚠️ Почему это опасно?
Когда тимлид = координатор, а не техлидер:
– нет единой инженерной воли,
– архитектура пляшет под каждую фичу,
– команда теряет технический фокус,
– люди не растут — их просто загружают задачами.

🔚 Результат?
Кодовая база жиреет, баги множатся, у новых сотрудников нет ориентира, команда выгорает, бизнес теряет деньги.

🕵️‍♂️ Кто такой настоящий тимлид?
Это не менеджер задач.
Это инженер с лидерскими качествами, который:
– принимает технические решения,
– учит команду думать, а не просто делать,
– держит баланс между «как быстрее» и «как правильно»,
– не боится сказать “мы не потянем эту фичу без переписывания вот этого”.

Присмотритесь к своему тимлиду. Он рулит командой? Или просто двигает такси?
Потому что проект без техлидера — это проект на автопилоте, у которого заклинило штурвал.


Подписывайся
3🔥3👍2
🗣️ Тот, кто всем мешает, но всех спасает

В каждой команде, где разработка хоть как-то движется, со временем появляется человек, который… не пишет фичи, не делает, задачи из спринта, не устраивает демо, а просто ходит и “мешает жить”.

Он:
— спрашивает, почему логика размазана по трём слоям,
— не даёт пихнуть “ещё один флажочек в модель”,
— просит не пушить на прод «вот так сразу»,
— требует думать, как оно будет работать через 6 месяцев.

🎯 Это — невидимый архитектор.
Он не обязательно по должности архитектор, он может быть обычным разрабом.
Но у него есть техническое чутьё и инстинкт выживания проекта.

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

🙈 Но если его нет…
Кодовая база гниёт, архитектура начинает плыть под фичи, каждая новая задача — как операция на хрупком теле

🧠 В чём его настоящая ценность?
Он видит на 5 шагов вперёд; строит каркас, на который потом можно вешать фичи; защищает проект от технического долга; и вырабатывает стандарты, о которых никто не думал.
Чаще всего работает не на сегодняшнюю задачу, а на будущее.

Невидимый архитектор — как иммунитет- его не видно, пока всё хорошо. Но только его убираешь — начинается болезнь.


Не пытайся оценивать его вклад по количеству закрытых тасок.
Смотри, насколько вся команда может двигаться быстрее и безопаснее благодаря его “мешательству”.

Подписывайся
👍9
🎛️ Управление ожиданиями

Вы же хотите, чтобы проект был и в срок, и без багов, и с кучей фич, да?»
Типичный сценарий, когда всем говорят “да”.

Каждый хочет своего:
Заказчик хочет «суперфичу вчера»
Менеджер требует все быстренько и без багов
Разработчики хотят качественно и спокойно

И во что это выливается? Выгорание команды, сильная потеря качества, растущий долг по задачам и багам.
Ничего не получится, если будем всем говорить «да».

🚷 Так что же делать? Говорить «нет»?
Не совсем. Говорить «нет» напрямую — это конфликт, недовольство и ощущение, что команда «не тянет». Но и безотказное «да» ведет в тупик.

📤 Выход — в управлении ожиданиями.

Не «да» или «нет», а «как» и «когда».
Вместо автоматического согласия — задавайте уточняющие вопросы:
«Как это повлияет на текущие задачи?»
«Что важнее: успеть к сроку или добавить все хотелки?»

Так заказчик сам включается в расстановку приоритетов.

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

🛡️ Защищайте команду
Если разработчики постоянно в аврале — они либо уйдут, либо начнут халявить. Лучше честно сказать: «Мы можем сделать это быстро, но рискуем качеством. Давайте выберем».

💯 Фиксируйте
Устные «добавим потом» превращаются в бесконечный долг. Любое изменение — либо в письме, либо в задаче с четкими условиями: «Сделаем, но сдвинем дедлайн на неделю».


Управление ожиданиями — не про отказ. Это про взрослую коммуникацию, где на первом месте не «понравиться», а принести результат без выгорания и суеты.

Подписывайся
👍4🤯1
💥 Фича ради фичи

Как легко потерять смысл разработки, добавляя “полезности”
— Сделаем ещё кнопку, она “точно нужна”
— Добавим фильтр, и сортировку, и модалку, ну мало ли
— Вот бы выгрузку в Excel, и график, и пуши!

…Проект набирает скорость. Только куда?

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

📉 Парадокс: чем больше фич, тем хуже продукт
Потому что он уже не про ценность, а про “галочки” и “давайте сделаем ещё”.
У фичи должен быть KPI, надо ставить вопрос «а что изменится от нее?». Также их надо подчищать, если старые не используются: «больше ≠ лучше»

Хороший пример: есть множество платных плагинов для Notion, в которых тонна функций. Но пользователям часто нужна была именно интеграция с Гугл таблицами, они не хотели переплачивать за другие возможности плагина.
Один парень заметил это, и сделал элементарный плагин для интеграции Notion с Google Sheets, на чем начал зарабатывать хорошие деньги. Людям не нужно «все и сразу», им нужна качественная точечная фича

Подписывайся
🔥3
🧨 “Нормально же работало” — путь к проекту-заложнику

«Мы не трогаем эту часть — всё рухнет»
«Лучше не обновлять, и так живёт»
«Да, костыль, но зато не багует»
«Этот скрипт нельзя менять — его писал Вася, а он уволился»


🙃 Всё вроде стабильно. Но реально — это не стабильность, а страх.
Проект превращается в заминированное поле: можно работать, но никто не знает, где рванёт.

📉 Результат:
– техдолг накапливается,
– команда боится вносить правки,
– баги чинятся поверх костылей,
– прод держится на удаче и “не трогай”.

“Нормально же работало” — это не аргумент.
Если система работает только в текущем состоянии, значит, она неустойчива.

Подписывайся
👍2
📋 Чек-лист: твой проект скоро развалится, если…

1️⃣ Весь проект держится на одном человеке

2️⃣ Задачи ставятся в личке, на встрече или в голове

3️⃣ Никто не может объяснить, что по приоритету

4️⃣ Прод выкатывается вручную, или вообще в пятницу вечером

5️⃣ Тестов нет, а баги ловим по фидбеку

6️⃣ Архитектура — это слово из чужого лексикона

7️⃣ Вопросы “а как это работает?” решаются методом тыка

8️⃣ Бэкапы где-то есть, но никто не проверял

9️⃣ Ушёл один человек — и половина знаний ушла с ним

💥 Если загнули 3-4 пальца - уже повод задуматься.

Пока всё работает — это не стабильность, а везение.


Подписывайся
🔥32🤔1
🕳 MVP, который гниет

«Сделаем как MVP, а потом переделаем».
— эта фраза звучит как план. Но чаще всего это и есть финальный план.

🔨 MVP — штука нужная. Быстро проверить идею, не тратя кучу денег.
Проблема в том, что часто MVP остаётся в проде навсегда. Он разросся, к нему прикрутили пару костылей, потом ещё фичу, потом ночью баги пофиксили — и вот у тебя боевой сервис, построенный на техрешениях “на потом”.

🧨 Что на руках?
А на руках чучело сделанное из глины, песка и палок. Никто не осмеливается его переписать, ибо долго и вдруг сломается. Интеграция новых фичей медленная, а баги множатся
Считать расходы уже страшно…

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

Это не потеря времени, это защита от падения.
Если не перерасти MVP - он сам станет бизнес-риском


Подписывайся
👍3🙏21💯1
🔁 Синдром бесконечного релиза

Почему стартап так и не запускается, хотя “уже почти”

Сценарий знакомый:
- Релизим на следующей неделе!
- Ой, тут надо ещё кнопку подвинуть
- Добавим пару фичей, без них ну никак
- Нашли пару багов, давайте поправим и тогда точно выкатим


Спустя 2 месяца: релиза нет, команда на износе, всё работает “почти”, а пользователи до сих пор не знают, что вы существуете.

🤯 В чём настоящая проблема?

1. Нет критерия “Готово”
Все что-то делают, но никто не понимает: а что именно мы релизим?
Без чёткого определения, что должно быть в версии 1.0, всегда будет казаться, что «ещё чуть-чуть, и будет идеально».

2. Фичи плодятся бесконтрольно
Каждая идея добавляется на лету. Команда работает не на завершение, а на постоянное улучшение. В итоге ни одно улучшение не отполировано, а багов всё больше.

3. Неправильно выбрана дата релиза
Иногда дедлайн просто притянут с потолка: «ну давайте за месяц успеем». Без оценки объема задач, ресурсов и рисков. А потом начинается чудесное шоу переносов.

🧠 Что с этим делать?
Пропишите простое правило:
релизим не “всё”, а строго определённый набор функций.
Это и есть DoD (Definition of Done), только на человеческом языке.
Всё, что не попало в этот набор — идёт в очередь на следующий релиз.
Да, будет не идеально. Зато будет запущено.

📉 Продукт без релиза — это ноль.
Сколько бы сил вы в него ни вложили — он не работает, пока не живёт у пользователей.
А пользователи не прощают бесконечных «мы скоро».

Подписывайся
3👍2💯2
Привет, друзья!

Спасибо, что заинтересовались моим каналом и подписались. Я решил выглянуть из-за вуали постов, чтобы начать говорить с вами.
Я хочу спросить — какой формат вам ближе?

Варианты форматов:

🔵Короткие посты — 1 мысль, короткий вывод.

🔵Средние посты — без воды, но с историей или примером.

🔵Лонгриды — большие разборы с кейсами.

🔵Чек-листы и «флажки» — быстрое самопроверочное.

🔵Разборы ваших ситуаций (а вдруг… все будет анонимно).

🔵Немного личного — мысли, наблюдения и опыт.

Ниже опрос(доступен множественный выбор)

Если у вас есть свой вариант, то пишите свои предложения: @wodevod
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🧠Почему «сеньор» — не всегда спасение

Иногда бизнес думает: «наймём сеньора — он всё решит».
Но это ловушка.

На деле сеньор не спасёт, если вокруг — бардак.
Если задачи мутные, архитектуры нет, процессы хаотичные — он или начнёт всё переделывать (и конфликтовать), или просто махнёт рукой и будет пилить тикеты, как все.

И тогда звучит:
Ну и что с него толку? Мы платим в 2 раза больше, а результат тот же!


А проблема не в человеке.
Проблема в контексте, в котором он работает.

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

📌 Сеньор не лечит систему.
Он помогает, если системе дают дышать.

Когда-то я был тем самым, кто начал все переделывать и конфликтовать. Закончилось моим скорейшим уходом)

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
🛠 Когда «сделаем универсально» — это худшее решение

В один момент кто-то в команде говорит:
Давайте сразу сделаем гибко, с запасом — пригодится

Звучит как зрелый подход.
Но на деле — часто оборачивается катастрофой.

Делают абстрактную логику «под расширение»
Строят сверхгибкую архитектуру
Добавляют настройки, которых никто не просил

📥 И в итоге тратим недели на подготовку к «будущему», которое может не наступить.

👀 И я так ошибся
В одном проекте решили построить «универсальный модуль отчётов» — под любые данные, фильтры, роли.
Хотя по факту нужен был один простой отчёт — для одной команды.
Ушло, наверное, раза в 3 больше времени, чем могло бы уйти
А потом, систему интегрировали в другой отдел, а там уже был совершенно другой формат…
Пришлось переписывать

📌 Универсальность — это не по умолчанию.
Это инвестиция.
Если у бизнеса нет запроса «масштабировать это решение в 3 направления через 2 месяца», то скорее всего ему нужно просто решение здесь и сейчас.

Сначала — рабочая фича.
Потом — если надо, расширим.


Подписывай
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
💬 Чат-менеджмент

Всё идёт нормально, пока проект маленький.
5 человек в команде, один чат — и вроде всё под контролем.

Потом начинается:
— Кто делает выгрузку для отчёта?
— Я вроде делал...
— А где ты это писал?
— Ну… я вышел писал об этом.


👀 Добро пожаловать в чат-менеджмент.

Задачи ставятся в Telegram, Slask, Notion комментариях или даже комментарии в ворде(и такое бывает).
Статусы задач? Конечно - "прочитано" или "не прочитано"
Пинг в чате - способ управления и отслеживания.

⚠️ И всё вроде работает… пока не сломается.

Как только людей станет больше 5, задач больше 10 в неделю или кто-то уйдет в отпуск - то все превращается в сущий ад.
Таски теряются, люди отстреливаются фразами "ты мне не писал", а приоритетов вообще нет...

Оно вам надо?

Чат — для обсуждения.
Задачи — в трекере.
Согласования — письменно или в таске.
История — не в голове, а в системе.

И жизнь спокойнее, и процессы прозрачнее

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1💯1
Когда фидбэк может уничтожить продукт

— Нам написали, что неудобно искать товары, надо переделать поиск!
— Пользователь жалуется, что кнопка не там. Надо срочно перенести!
— Все пишут: сделайте темную тему, это must have!


А теперь включим рациональность.
Сколько таких "все" на самом деле? Трое? Или один активный, но крикливый?

📉 Продукт, который бежит за каждым фидбеком — теряет лицо.

Вы не улучшаете его — вы превращаете его в комок компромиссов.
Есть разница между: "мы услышали пользователей" и "мы сломались под первым комментом"

⚪️ Фидбек нужно фильтровать.

1️⃣ Это разовое мнение или тренд?
2️⃣ Это влияет на метрики?
3️⃣ Это относится к нашей целевой аудитории?
4️⃣ Решает ли это бизнес-задачу?

Хочется продукт, которым будут пользоваться — не пытайтесь угодить всем.
Фокус — важнее шума.

Если у продукта нет своего курса, его уносит течением чужих хотелок — и чаще всего в никуда.

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏2
🎯 Приоритизация — фильтр выживания

Сделаем попроще, а то не успеем.
Добавим ещё вот это, пока есть время.
Эта задача не срочная, но она интересная...


💥 Вот так проект начинает разваливаться не потому, что команда плохая, а потому что нет приоритетов.
Каждый занят делом. Только непонятно, каким именно.

Релиз вроде бы близко, но всё время что-то мешает.
И в какой-то момент вы ловите себя на мысли:
все работают, а вперёд — не двигаемся.

🔍 Почему приоритизация — не банальность, а необходимость:

Фокус на важном.
Команда перестаёт хвататься за всё подряд и делает то, что реально двигает продукт.

Прозрачность.
Можно сказать “нет” не потому что “не хотим”, а потому что есть чёткий план. И все его видят.

Безопасность.
Отсекаются фичи, которые потенциально могут всё сломать прямо перед релизом.

💡 Приоритизация — это не табличка в Notion.
Это инструмент, который экономит нервы, время и деньги.
Он не для менеджера. Он для всей команды.

Без приоритетов: задачи множатся, продукт буксует, а команда слепа
А релиз?
Он просто не наступает.


Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
2🙏2👌2👍1
🏃 Синдром бессмысленного спринта

Когда задачи есть, а работы — нет

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

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

Обычно это сопровождается размытыми приоритетами, отсутствием ясного Definition of Done и желанием сделать всё, что успеем.
В результате — перегруз, выгорание и ощущение, что труд напрасен.

Необходимо каждый раз задаваться вопросом: "то, что мы делаем - приближает нас к релизу?"

🔵 Жёсткая приоритизация — не про то, чтобы вычёркивать, а про осознанный выбор: что действительно нужно сейчас.

🔵 Общая цель — не для красивых презентаций, а для синхронизации команды

🔵 Внятный результат — это не про закрытую задачу, а про изменение, которое мы хотим видеть в продукте.

Проект может двигаться медленно — и это нормально. Плохо, когда он стоит, хотя все якобы идут вперёд.

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
👨‍💻 — Слушай, я посмотрел у Тинькоффа — у них такие крутые анимации. Давайте и нам такие сделаем!

👨‍💻 — Ну, у нас не финтех, мобильного приложения нет, и вообще — у нас CRM для логистов…

👨‍💻 — Ну и что? Люди любят, когда красиво! Сделаем плавные графики, чтобы всё оживало. UX, UI, ты же понимаешь!

👨‍💻 — У нас при этом не работают фильтры, отчёты формируются вручную, и у клиента падает система при импорте Excel. Может, сначала это починим?

👨‍💻 — Ладно… Только кнопки тогда сделай с закруглениями, как в Тинькоффе. Хоть что-то красивое будет.

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

💡 Вдохновение — не преступление.
Но копирование без понимания контекста — худший выбор.
У Тинькоффа и команда дизайнеров, и исследования юзабилити, и огромный бюджет, и полгода на rollout.

Сначала надо решить боль клиента, а не украсить страдание.
Сделай стабильный функционал, и только потом — красивый.
Иначе копирование по цене тех долга выйдет.


Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6💯1
😱 Команда боится принимать решения

У нас часто ищут сильных специалистов, мотивированных разработчиков, самоорганизующуюся команду.
Но что, если проблема не в слабости, а в том, что люди боятся принимать решения?
Не потому что глупые. А потому что:

– с нас за это потом спросят
– менеджер всё равно всё переиграет
– легче согласовать, чем спорить
– если сломается — крайний я


👀 И вот ты видишь:

Разработчик, который не трогает старый код — просто потому что боится сломать.
Команда, которая ждёт ТЗ до последней строчки — потому что иначе накажут.
И даже архитектурные решения — не обсуждаются, потому что лучше промолчать, чем навредить.

Это не культура безопасности. Это культура страха.
И в такой среде не бывает прогресса — потому что любое движение воспринимается как риск.
Проще отсидеться молча (Моя хата с краю)

❤️ Как лечится?

Мотивацией сложно. Надо дать понять, что ошибаться можно, и в этом нет ничего плохого.
Ошибки — плата за движение. Их отсутствие — признак стагнации.

И вот тогда будет прогресс

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6
🔥 Потушили — и молодцы

Или же почему проект вечно на соплях

🧯 Пожары вместо разработки

Команда чинит баги по тревоге, на коленке. Все радуются — решили!
Но баги возвращаются. Причины те же. Ошибки — те же.
Почему? Потому что никто не останавливается, чтобы решить причину

🧠 Лечим симптомы, а не причины

Фиксить быстро — выгодно.
Показать, что уже всё исправили — удобно.
Разобраться в корне проблемы — некогда.
А значит — легче закостылить.

💣 Хрупкая система и страх менять

Костыли на костылях. Никто не понимает, как всё работает.
Новый баг — и никто не решается лезть в старый код.
Прод превращается в минное поле.
Каждое изменение может всё сломать.

😏 Закрываем заслонку

После каждого бага нужен не только фикс, но и осмысление: какие причины, как не повторить, где улучшить

Если проект не извлекает уроки — он топчется на месте. Или тонет.
Чтобы проект был устойчивым, баг должен становиться поводом для роста, а не только срочным исправлением.

Подписывайся
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍5🔥3