Team Lead Backend
Описание
Привет! Мы строим социальную платформу в формате цифровых пространств осознанного потребления контента с поддержкой креативной экономики. В своей сути, платформа с UGC-контентом и активным социальным взаимодействием. В дальнейшем планируем продукт развивать до полноценного супераппа: в дорожной карте дейтинг, еком, трэвел, и другие продукты. По формату, у нас стартап на частных инвестициях. Мы строим продукт, в который верим, и ищем в нашу команду единомышленников. 1. Задачи: Руководить backend-командой: распределять задачи, проводить one-to-one, развивать инженеров и участвовать в найме. Проектировать архитектуру социальной сети, мессенджера и сервисов, обеспечивающих аудио и видео звонки, а также других сервисов, заложенных в roadmap проекта. Принимать и документировать ключевые технические решения. Участвовать в разработке критичных компонентов на Go и Python. Проводить code review и поддерживать стандарты качества кода. Декомпозировать продуктовые требования, оценивать сроки и управлять техническими рисками. Развивать микросервисную и событийно-ориентированную архитектуру. Обеспечивать производительность, отказоустойчивость, масштабируемость и наблюдаемость системы. Организовывать работу с техническим долгом, инцидентами и post-mortem. Взаимодействовать с мобильными и frontend-командами, DevOps/SRE, QA, аналитиками и продуктом. 2. Ключевые навыки и опыт: Опыт коммерческой backend-разработки от 5 лет. Опыт технического лидерства или управления командой от 2 лет. Практический опыт разработки и уверенное владение Go/Python. Глубокое понимание конкурентности, многопоточности, асинхронного программирования и сетевого взаимодействия. Опыт проектирования и эксплуатации высоконагруженных распределенных систем. Понимание принципов построения микросервисов, модульных монолитов и event-driven-систем. Опыт работы с REST, gRPC, WebSocket и Server-Sent Events. Уверенная работа с PostgreSQL: проектирование схем, индексы, транзакции, блокировки, репликация и оптимизация запросов. Опыт работы с Redis и брокерами сообщений: Kafka, NATS и RabbitMQ. Понимание гарантий доставки, идемпотентности, порядка событий и eventual consistency. Практический опыт контейнеризации и оркестрации: Docker, Kubernetes. Опыт построения CI/CD и автоматизированного тестирования. Знание подходов к мониторингу и трассировке: Prometheus, Grafana, OpenTelemetry, ELK/OpenSearch. Понимание SLI/SLO, graceful degradation, rate limiting, circuit breaker и disaster recovery. Умение проводить архитектурные ревью, давать конструктивную обратную связь и аргументировать решения. Специфика мессенджера Кандидат должен понимать или быть готов глубоко разобраться в следующих задачах: доставка сообщений в реальном времени; синхронизация истории между несколькими устройствами; статусы отправки, доставки и прочтения; редактирование, удаление и реакции на сообщения; групповые чаты, права участников и модерация; хранение и доставка вложений; push-уведомления; offline-доставка и восстановление соединений; борьба с дубликатами и сохранение порядка сообщений; presence, typing-индикаторы и счетчики непрочитанных сообщений. Специфика звонков Понимание принципов работы WebRTC. Знание процессов signaling, ICE, STUN и TURN. Базовое понимание RTP/RTCP, кодеков и адаптации качества связи. Опыт или понимание архитектуры групповых звонков с SFU/MCU. Представление о NAT traversal, потерях пакетов, задержках и джиттере. Умение проектировать сервисы управления звонками: создание сессии, приглашения, статусы участников, завершение и восстановление соединения. Понимание метрик качества звонков и методов диагностики проблем. Глубокая разработка медиасервера не обязательна, если есть опыт интеграции с LiveKit, Janus, mediasoup, Jitsi или аналогичными решениями. Безопасность Понимание OAuth 2.0, OpenID Connect, JWT и управления пользовательскими сессиями. Опыт проектирования авторизации и ролевой модели доступа. Знание базовых методов защиты API от злоупотреблений, спама, ботов и DDoS. Понимание принципов защиты персональных данных и безопасного хранения секретов. Опыт проведения security review или работы совместно с командой информационной безопасности. Будет преимуществом Опыт разработки социальной сети, мессенджера или коммуникационной платформы. Опыт эксплуатации систем с миллионами пользователей и большим количеством постоянных соединений. Практический опыт с WebRTC и серверными медиаплатформами. Знание ClickHouse, Elasticsearch/OpenSearch, Cassandra, ScyllaDB или других специализированных хранилищ. Опыт построения рекомендательных систем, лент новостей, поиска или антиспам-сервисов. Понимание end-to-end encryption и протоколов защищенного обмена сообщениями. Опыт работы с облачными платформами и Infrastructure as Code. Участие в миграции монолита на модульную или микросервисную архитектуру. Опыт управления несколькими backend-командами или техническими направлениями. Управленческие и soft skills: Опыт тимлида (2+ года) или ведущего разработчика в команде 3+ человека. Умение декомпозировать задачи, планировать спринты, проводить код-ревью. Навыки менторства, помощь junior/middle разработчикам. Умение работать с Product-менеджерами и Data Science-командой. Ответственность за технические решения и архитектуру. Ожидаемый результат работы Команда регулярно и предсказуемо выпускает изменения. Архитектура выдерживает рост аудитории и нагрузки. Критичные сервисы имеют измеримые SLO и понятные процедуры восстановления. Технические решения документированы, а зоны ответственности сервисов определены. Снижается количество аварий, повторных дефектов и ручных операций. Инженеры команды растут профессионально и могут самостоятельно принимать решения в своих областях. 3. Условия: Режим работы: 5 дней в неделю, понедельник – пятница, с 09:00-18:00, очный формат работы. Компенсационный пакет: по необходимости оборудование предоставляет работодатель Испытательный срок: 3 месяца Участие в построении архитектуры и принятии ключевых решений. Работа в команде с сильными ML-инженерами и Data Scientist'ами.