Senior Flutter-разработчик, мобильная разработка
О компании
IDT Corporation — глобальная коммуникационная компания, основанная в 1990 году со штаб-квартирой в Ньюарке, Нью-Джерси. Лидер в области предоплаченных коммуникаций и платёжных услуг, один из крупнейших международных голосовых операторов. Акции торгуются на NYSE, более 1800 сотрудников в 20 странах, выручка более 1,5 млрд долларов. Флагманский бренд BOSS Revolution предлагает денежные переводы, международные звонки и пополнение мобильных счетов.
О роли
BOSS Revolution помогает миллионам людей по всему миру оставаться на связи с семьёй и друзьями через международные звонки, пополнение мобильных счетов и денежные переводы. Как Senior Flutter Developer в команде DTC Calling вы будете разрабатывать и развивать флагманское приложение BOSS Revolution.
Основное направление — Product-Led Growth (PLG): реферальная программа (Refer-a-Friend), воронки онбординга и активации, промо- и бонусные механики (программы лояльности и подписки, бонусы за первый перевод и пополнение, апселл-предложения), а также эксперименты, определяющие, какие из них запускать. Это главное направление, но не единственное: вы будете брать на себя любые задачи команды — главный экран, звонки, денежные переводы и пополнение, подписки и платежи — по мере необходимости.
Вы будете работать с одной из крупнейших production-кодовых баз Flutter — монорепозиторием из 100+ внутренних пакетов, feature-first чистой архитектурой и сильной инженерной культурой в области качества кода, тестирования и автоматизации — и выпускать короткие инструментированные итерации: гипотеза → флаг → вариант → метрика → решение. Приложение также содержит нативный стек звонков (SIP/VoIP на Android и iOS); опыт в этой области приветствуется, но не обязателен.
Задачи
Рост (основное направление)
- Создавать механики роста от начала до конца: реферальные потоки (пригласительные ссылки, отложенные диплинки, отслеживание вознаграждений), воронки онбординга и активации, промо- и бонусные диалоги и предложения, внутриигровые опросы — от PRD с метрикой успеха до измеримого результата в продакшене.
- Регулярно проводить эксперименты: выпускать за фича-флагами, настраивать назначение вариантов из удалённого конфига / A/B-сервиса (тесты с фиксированным сплитом и multi-armed bandit) и Firebase Remote Config, помечать события тестом и вариантом, следить за guardrail-метриками и удалять флаг после завершения теста.
- Инструментировать и валидировать аналитику: определять и реализовывать события и свойства Amplitude/GA, поддерживать чистоту таксономии событий между релизами, проверять события перед запуском и читать дашборды воронок вместе с PM и командой данных.
- Отрисовывать серверный промо-контент: интегрироваться с внутренней кампанийной платформой — таргетированные кампании, удалённо настраиваемые тексты и креативы, обновления макета с бэкенда в реальном времени — с версионированными фолбэками, чтобы кампании запускались без релиза приложения.
- Интегрировать сторонние SDK для роста: атрибуция (AppsFlyer), Braze (пуш, контент-карточки), реклама (AdMob / AppLovin), платёжные и KYC-вендоры — в основном через Flutter-плагины, иногда расширяя их на Kotlin/Swift через платформенные каналы.
В приложении и команде
- Выпускать продуктовые фичи за пределами роста: главный экран, потоки звонков (Flutter UI поверх нативного SIP-стека), денежные переводы и пополнение, подписки и платежи (карточные и кошельковые потоки, Google/Apple Pay), выбор страны, чат и социальные функции, производительность и технический долг — те же стандарты, другая поверхность.
- Владеть фичами в рамках архитектуры: feature-first чистая архитектура, управление состоянием Bloc/Cubit, репозитории, неизменяемое состояние, обработка ошибок на основе Result; миграция легаси-кода Provider/ViewModel в затрагиваемых модулях (например, реферальном) на текущие паттерны.
- Работать в реальном масштабе: монорепозиторий под управлением Melos с 100+ пакетами, строгая иерархия зависимостей, генерация кода (json_serializable / freezed), общая дизайн-система и порог покрытия диффа 90% для каждого пакета в CI (bloc_test + mocktail).
- Поддерживать здоровье релизов: trunk-based development, около 2 релизов в месяц через GitHub Actions и Fastlane, Crashlytics и мониторинг продуктовых метрик, поэтапные выкатки и kill-switch для рискованных изменений.
- Взаимодействовать кросс-функционально: с продакт-менеджерами (рост и основной продукт), бэкенд-инженерами (кампании, конфиг и A/B-сервисы), данными и BI, маркетингом (кампании Braze) и QA — и отклонять запросы, которые нельзя измерить.
- Использовать AI-ассистированную разработку как часть повседневного рабочего процесса: Cursor / Claude Code / Copilot с внутрирепозиторными промптами, агентами и MCP-интеграциями.
Требования
- 5+ лет разработки мобильных приложений, включая 3+ года с Flutter в продакшене.
- Сильное владение Flutter/Dart: Bloc/Cubit или аналогичное структурированное управление состоянием, асинхронное программирование и изоляты, генерация кода, внедрение зависимостей, чистая архитектура и модуляризация.
- Практический опыт разработки продуктов на основе экспериментов: фича-флаги и удалённый конфиг (Firebase Remote Config, LaunchDarkly, Statsig, GrowthBook или внутренний сервис), механики A/B-выкаток (поэтапная выкатка, sticky assignment, kill-switch) и инструментирование аналитики (Amplitude, Mixpanel, GA или аналоги) — включая понимание того, как завершились ваши эксперименты.
- Диплинкинг, включая отложенные диплинки и настройку App Links / Universal Links; понимание потоков атрибуции.
- Рабочее знание нативного Android (Kotlin) и/или iOS (Swift) на уровне интеграций через платформенные каналы и SDK.
- Сильная культура тестирования: юнит- и bloc-тесты с замоканными зависимостями, детерминированные тесты, комфортная работа в условиях порогов покрытия.
- Опыт полного жизненного цикла: Git, CI/CD (например, GitHub Actions), подпись кода, публикация в сторах, мониторинг после релиза.
- Продуктовое мышление: умение работать по PRD с метриками успеха, предлагать инструментирование и guardrails, объяснять компромиссы неинженерам.
- Английский: Upper-Intermediate или выше.
Будет плюсом
- Опыт в выделенной команде роста или монетизации: реферальные программы, оптимизация онбординга, пейволы / подписки, работа над удержанием, multi-armed bandits.
- Знание SDK атрибуции и маркетинга: AppsFlyer, Kochava, Adjust, Branch; Braze, Iterable, CleverTap.
- Server-driven UI или системы удалённо настраиваемого контента.
- Платежи и подписки на мобильных: карточные потоки, 3DS, встроенные покупки, Google/Apple Pay.
- VoIP / связь в реальном времени: SIP, WebRTC, CallKit / Telecom framework, обработка звонков по пушу, управление аудиосессией.
- Большие монорепозитории (melos, Mason, Dart workspaces); миграция легаси-паттернов управления состоянием.
- За пределами мобильной разработки: бэкенд / BFF для фич роста, пайплайны данных, наблюдаемость.
- Телеком, финтех или другие регулируемые потребительские продукты (KYC, антифрод-вендоры).
- Комфорт с инструментами AI-ассистированной разработки.
Условия
- Современный офис с бесплатной парковкой в самом центре Минска.
- Возможность удалённой или гибридной работы.
- Интересная и сложная работа с талантливыми людьми.
- Конкурентная зарплата и возможности роста.
- Хорошее аппаратное обеспечение.
- 26 дней отпуска и 5 полностью оплачиваемых больничных дней в год без необходимости больничного листа.
- Компенсация профессионального обучения, семинаров и конференций.
- Компенсация спортивных занятий и программа лояльности.
- Медицинская страховка и компенсация спорта.
- Реферальная программа — вознаграждение за помощь в привлечении талантливых людей в команду.
- Корпоративные занятия английским языком для профессионального роста.