**🎯 Задача** Создать систему голосования для Crypto Awards с аудиторией 50 000+ участников, защитой от накрутки и проверкой подписки на обязательные каналы. **🛠 Что реализовано** - Голосование по номинациям с подсчётом в реальном времени и возможностью изменения выбора - Встроенный админ-режим для управления номинациями и настройками - Защита от накрутки: привязка к Telegram ID, rate limiting, логирование действий - Автопроверка подписки через Telegram Bot API с кэшированием - Экспорт статистики по голосам **⚙️ Технологии** Backend: FastAPI (async) + PostgreSQL 16 + SQLAlchemy 2.0 + Redis 7 для кэша и rate limiting. Frontend: React 18 + TypeScript + Telegram Mini Apps SDK + TanStack Query. Инфраструктура: Docker Compose, Nginx, Alembic. **💡 Сложные решения** **Race conditions при конкурентных голосах:** Реализовал атомарные транзакции с unique constraint (user_id, nomination_id) — один голос на пользователя в одной записи. При смене выбора счётчики старого и нового номинанта корректируются в той же транзакции. **Результат:** 100% корректность данных, 0 дубликатов. **Лимиты Telegram API:** Проверка подписки каждого пользователя создавала перегрузку (5000 req/min). Внедрил кэширование в Redis с TTL 5 мин — результаты сохраняются и переиспользуются. **Результат:** Нагрузка снижена в 20 раз (до 250 req/min), latency < 50ms. **✅ Результат** Платформа обслужила 50 000+ пользователей с uptime 99.8%, обработала пиковую нагрузку до 500 req/sec с latency < 200ms.