Если вы раньше входили через Google, сбросьте пароль для своей Gmail-почты через кнопку «Забыли пароль?» на экране входа. Затем войдите по email и новому паролю.
Если аккаунта ещё нет, зарегистрируйтесь с Gmail-почтой — после подтверждения почты мы предложим задать пароль.
Что нового
Загружаю обновления...
Что нового
Загружаю обновления...
Работа найдется быстрее с подпискойКандидат найдётся быстрее с подпиской
Чтобы адаптировать резюме под вакансию или составить сопроводительное письмо, загрузите резюме
описание
Продукт — приложение с живыми спортивными трансляциями, статистикой матчей, видео и большим объёмом данных для iOS, Android и Web на общей Flutter-кодовой базе. Ядро приложения — собственный видеоплеер поверх HLS, вокруг которого работают реклама, подписки, аналитика и сценарии доступа к контенту.
задачи
Развивать и поддерживать HLS-трансляции и VOD;
Реализовывать буферизацию, восстановление после обрывов сети и повторное подключение к потоку;
Обрабатывать зависания, остановки воспроизведения, полноэкранный режим, звук, audio session, фоновый режим, Picture in Picture и casting;
Обеспечивать длительное воспроизведение без утечек памяти и снижения производительности;
Работать со сценариями рекламы, подписок, восстановления покупок и отключения рекламы для подписчиков;
Участвовать с backend-разработчиком в проектировании API под потребности клиента;
Подключать новые методы API;
Продумывать кеширование;
Обрабатывать ошибки и недоступность сервисов;
Уменьшать количество лишних запросов и данных;
Корректно обновлять данные на live-экранах;
Создавать новые экраны по макетам;
Учитывать особенности Flutter Web, браузеров, видео, CORS, проксирования и взаимодействия с JavaScript;
Профилировать приложение и искать лишние rebuild;
Оптимизировать тяжёлые списки и контролировать память;
Обеспечивать плавную прокрутку на слабых устройствах и стабильность при многочасовом воспроизведении;
Анализировать crash reports, логи и метрики;
Доводить задачи до production;
Работать с CI, сборками, flavors, white-label-приложениями и подписью приложений;
Публиковать приложения в App Store и Google Play;
Работать с отказами ревью и требованиями магазинов;
Наблюдать за функциональностью после релиза;
Встраиваться в существующую архитектуру и работать с legacy-кодом;
Диагностировать проблемы по логам, состоянию плеера, сети, устройству, версии ОС, метрикам и crash reports;
Тестировать на реальных устройствах и при плохом интернете;
Проверять нестандартные сценарии;
Следить за задачами после выкладки;
Задавать вопросы по scope и оценивать сроки;
Фиксировать важные технические решения в репозитории.
требования
От 3 лет коммерческой разработки на Flutter;
Опыт длительного сопровождения хотя бы одного продукта;
Опыт работы с релизами, регрессиями, production-багами, чужим кодом и архитектурными решениями;
Опыт публикации приложений в App Store и Google Play;
Уверенное знание Dart и Flutter;
Понимание жизненного цикла виджетов и Flutter rendering pipeline;
Опыт управления состоянием, Bloc / Cubit и Dependency Injection;
Знание слоистой feature-архитектуры и внутренних пакетов;
Практический опыт работы с видео, HLS, live, VOD, buffering, сетевыми ошибками, reconnect, foreground / background, полноэкранным режимом, звуком и длительным воспроизведением;
Умение диагностировать остановку плеера без явной ошибки;
Умение читать, понимать, исправлять и собирать native-код;
Умение аккуратно реализовывать интерфейсы по дизайну и спецификации;
Умение адаптировать интерфейсы под разные размеры экранов, использовать темизацию через токены и локализацию;
Умение работать с интерфейсами, насыщенными данными;
Умение тестировать на реальных устройствах и проверять работу при нестабильной сети;
Умение доводить задачи до релиза и сопровождать их после выкладки;
Умение спокойно разбираться в чужом коде и legacy;
Не подойдут кандидаты, чей опыт Flutter ограничивается формами и списками поверх REST API, у кого нет production-опыта с видео или собственных релизов в App Store и Google Play, кто тестирует только в эмуляторе или считает задачу завершённой сразу после merge;
Будет плюсом знание platform channels, Swift, Kotlin, native player APIs, Picture in Picture, casting, audio sessions, рекламных SDK, subscriptions / in-app purchases, аналитики, crash reporting, remote config, feature flags, Flutter Web, JS interop, hls.js, HTML video elements, CORS, проксирования, streaming CDN, HTTP headers, DRM, Chromecast / casting, SQLite, offline cache, тестирования бизнес-логики, code review, наставничества, спортивной тематики и опыт развития больших Flutter-проектов.