Навыки: Git, REST, ООП, Базы данных, MySQL, Linux, Django, Docker. Квалификация: Middle. Специализации: Разработчик мобильных приложений.
Развиваем приложение с живыми спортивными трансляциями, статистикой матчей, видео и большим объёмом данных. Продукт работает на iOS, Android и Web на общей Flutter-кодовой базе.
Ядро приложения — собственный видеоплеер поверх HLS. Вокруг него работают реклама, подписки, аналитика и различные сценарии доступа к контенту. Рядом — десятки насыщенных экранов с данными из API: матчи, турниры, команды, составы, статистика и другие спортивные данные.
Кодовой базе несколько лет: есть внутренние пакеты, собственные обёртки над сетью и хранилищем, несколько брендов из одного репозитория.
Ищем человека, который придёт развивать работающий продукт, разбираться в существующей архитектуре и постепенно улучшать её, а не начинать всё с нуля.
Middle+ / Senior.
Ориентируемся на разработчика с 3+ годами коммерческой разработки на Flutter, который сопровождал хотя бы один продукт достаточно долго, чтобы сталкиваться не только с разработкой новых экранов, но и с:
Видео — одна из ключевых частей продукта.
Нужно будет развивать и поддерживать:
Важно уметь воспринимать плеер не как один виджет, а как машину состояний и переходов.
Например, понимать, в каких состояниях плеер способен зависнуть навсегда, как это определить и какой fallback или watchdog должен сработать.
Плеер тесно связан с рекламой и монетизацией.
Нужно будет работать со сценариями:
В продукте много экранов с большим количеством данных.
Предстоит вместе с backend-разработчиком:
Основная кодовая база Flutter используется для:
Для Web нужно будет учитывать особенности браузера, воспроизведения видео, CORS, проксирования и взаимодействия Flutter с JavaScript.
Отдельная часть работы — production-качество:
Нужно уметь доводить задачу не до merge, а до production:
Уверенное знание Dart и Flutter:
Важно уметь встроиться в существующую архитектуру, а не пытаться переписать продукт под свой любимый стек.
Практический опыт работы с видео:
Особенно ценим разработчиков, которые умеют диагностировать сценарии вида:
«Плеер просто остановился, ошибки нет».
Не требуется быть отдельным iOS или Android-разработчиком, но необходимо комфортно чувствовать себя на уровне:
«прочитать → понять → поправить → собрать».
Желательно знать:
Будет полезен опыт с:
Важно понимать, как удалённо выключить, изменить или подменить функциональность без нового релиза приложения, если в production возникла проблема.
Ожидаем аккуратную реализацию интерфейсов:
Понимание того, как устроены:
Когда разработчику интересен спорт и не нужно объяснять предметную область с нуля, работать с продуктом значительно проще. Кроме того, такой человек быстрее замечает проблемы и неудобства в интерфейсе.
Опыт с:
Плюсом будет понимание:
Также приветствуется:
Спокойно разбирается в чужом коде и legacy.
Не ограничивается фразой:
«У меня не воспроизводится».
А идёт дальше: смотрит логи, состояние плеера, сеть, устройство, версию ОС, метрики и crash reports.
Часть проблем со стримингом может возникать только у нескольких процентов пользователей — на конкретном Android-устройстве, версии iOS, операторе или нестабильной сети.
Поэтому важно:
Скорее всего, нам будет сложно сработаться, если: