Описание вакансии
О роли
Twinby — один из крупнейших российских дейтинг-сервисов с миллионами пользователей: реалтайм (лента, матчи, чаты), деньги (подписки, покупки), антифрод и модерация. Мы перестраиваем разработку Twinby CIS и собираем продуктовые команды практически с нуля. Ищем сильного тимлида фронтенда, который с первого дня задаёт планку инженерной культуры и сам отвечает за то, как устроен фронт.
Тимлид фронтенда — это единая точка ответственности за техническую часть фронт-команды: тимлид отвечает за «как», продукт — за «что». Команда закрывает веб-направление (веб-приложение Twinby, сайт, админки) и кросс-функциональна: фронтендеры, бэкендер и QE рядом.
За что ты отвечаешь
- Архитектура SPA и стандарты фронта: как устроены стейт, рендеринг, границы модулей, эволюция приложения на 1–2 года вперёд — без overengineering и без «распределённого монолита фронта».
- Качество как процесс, а не доверие: ревью, DoD, merge-gate (зелёные тесты, ревью, аппрув QE), типизация как контракт, контракты с бэкендом (OpenAPI/gRPC). Планка держится системой, а не ручным ревью всего самим.
- Производительность и UX на масштабе: бюджет на бандл и рендеринг, реалтайм (лента, чаты) без лагов и утечек, измерение в проде, а не «на моём ноутбуке быстро».
- Надёжность фронта: «you build it — you run it». SLO и бюджет ошибок, разбор сбоев до причины, а не до виноватого — и ведёшь его ты.
- Техдолг как управляемый бюджет (15–20% мощности каждый цикл): режешь по риску внутри потока, а не «перепишу всё с нуля» и не «починим потом».
- Инженерная культура команды: задаёшь нормы (особенно в первые 90 дней), подтягиваешь фронтендеров, держишь знание в системе через ADR и документацию — чтобы уход человека не останавливал процесс.
- Синхрон с дизайном и бэком: общий язык с дизайном (токены, дизайн-система, перф-бюджет), контракты и совместимость API с бэкендом.
Что мы ждём
- Сильный фронт-инженер уровня senior/staff, который всё ещё в коде: архитектура крупного SPA, клиентский стейт, рендеринг, перформанс и бандл — а не только «рисуешь боксы».
- Опыт технического владения фронтом продукта или крупной админки: ты отвечал за архитектуру, качество и перф, а не только закрывал экраны.
- Перф и метрики для тебя — процесс команды, а не разовый подвиг: бюджет на бандл и рендеринг в пайплайне, измерение в проде, ловишь лишние ререндеры и утечки осознанно.
- Trade-offs с оговорками: когда CSR/SSR/SSG, какой подход к стейту и кэшу, где граница модуля, когда отдельное приложение оправдано, а когда это лишняя сложность — развёрнутое «зависит от…», а не «X лучше Y».
- Умеешь поднимать планку вокруг себя: ревью, стандарты и менторинг для тебя — обычная работа; синхрон с дизайном и бэком — переговоры, а не «делаю что присылают».
Будет плюсом
- Опыт ведения большой фронт-команды, монорепо, аккуратной миграции крупного легаси без big-bang.
- Angular и TypeScript в проде; опыт реалтайма (WebSocket), оптимистичных апдейтов, виртуализации списков, дизайн-системы как инженерного инструмента.
Чего НЕ требуем
Leetcode и алгоритмических головоломок, пиксель-перфект-вёрстки «у доски», заученного синтаксиса конкретного фреймворка, знания именно нашего стека или домена дейтинга. Нам важнее инженерная зрелость, перф-культура и то, что рядом с тобой растёт планка команды.
Технический стек
Angular / TypeScript — веб-приложение Twinby, сайт и админки (SPA). Интеграция с бэкендом по REST/OpenAPI и gRPC, реалтайм (лента, чаты). Бэкенд — Go-сервисы и Django-монолит (контекст для синхрона по контрактам). Инфраструктура — российское облако (Yandex Cloud).
Что предлагаем
- Ты задаёшь планку с нуля: команды собираются заново, нормы ещё не застыли — то, что ты делаешь и терпишь, станет культурой фронт-команды.
- Настоящая инженерная система, а не лозунги: замкнутый цикл доставки, спека-закон, merge-gate, метрики потока (вместо velocity и стори-поинтов), бюджет ошибок вместо ночного героизма, постмортемы без вины.
- Автономия владельца — ты решаешь «как», без комитетов; цели и направление обсуждаешь с архитектором и CTO.
- Масштаб и реалтайм, где перф и UX имеют вес, а инженерия видна на цифрах.
- Формат: удалёнка, РФ.