Мобильное приложение платформы доставки еды и бронирования VsemEda (iOS + Android).
Backend - NestJS (REST API), рядом работают сайт на Next.js и партнёрский кабинет.
Обязанности: - Разработка новых фич по продуктовому роадмапу с применением AI;
-
Рефакторинг ядра: разделение god-object корзины на Cart/Checkout-контроллеры, унификация моделей акций, вынесение чистой бизнес-логики;
-
Интеграции: Yandex MapKit (карты, геоподсказки, зоны доставки), платёжные SDK (SberPay, банковские карты, рекуррентные платежи), чат Webim, push-уведомления (FCM), аналитика (AppMetrica, AppsFlyer, Mindbox), AB-тесты;
-
Работа с vendored нативными плагинами (Webim, SberPay, PSCB): обновление, правка нативного кода iOS/Android при необходимости, platform channels;
-
Производительность: оптимизация списков, Rive-анимации и shader warm-up, профилирование;
-
Построение инфраструктуры тестирования с нуля (сейчас тестов мало - это зона роста);
-
Участие в код-ревью, следование dart_code_metrics-линтам, сборки через GitLab CI + Fastlane;
-
Взаимодействие с QA.
Требования: - Опыт разработки с применением AI агентов и построение среды разработки с применением AI обязательно;
- Коммерческий опыт разработки на Flutter от 5 лет, опыт поддержки production-приложений;
- Уверенное знание Dart и Flutter SDK, lifecycle, rendering, асинхронность, concurrency, memory management и performance optimization;
- Знание GetX, опыт проектирования и поддержки масштабируемых приложений;
- Знание принципов SOLID, Clean Architecture, Dependency Injection, separation of concerns;
- Практический опыт GraphQL, REST API, JSON, authentication, pagination, caching и network error handling;
- Практический опыт GraphQL, REST API, JSON, authentication, pagination, caching и network error handling;
- Уверенное знание Kotlin и Android SDK, опыт самостоятельной реализации native-функциональности;
- Уверенное знание Swift и iOS SDK, опыт самостоятельной реализации native-функциональности;
- Опыт самостоятельной разработки Flutter plugins/packages с реализацией Android/iOS частей на Kotlin/Swift;
- Уверенное владение Platform Channels (MethodChannel/EventChannel) и lifecycle Flutter Native интеграции;
- Production-опыт интеграции платёжных систем;
- Опыт работы с Firebase, Crashlytics, Analytics, AppMetrica;
- Опыт работы с Secure Storage, Keychain/Keystore и понимание принципов mobile security;
- Опыт интеграции и поддержки WebView, карт, геолокации, видео, push notifications и сторонних SDK;
- Уверенное знание Gradle, CocoaPods, Xcode и Android/iOS build pipeline;
- Практический опыт работы с signing, Keystore, Certificates, Provisioning Profiles, Entitlements;
- Опыт самостоятельной публикации и сопровождения production-приложений в App Store, Google Play, AppGallery и RuStore;
- Опыт настройки и поддержки CI/CD для Android/iOS; Fastlane, облачные CI/CD;
- Уверенное владение Git, branching strategies, merge/rebase, code review;
- Опыт написания и поддержки unit/widget/integration тестов.
- Опыт диагностики crash, ANR, memory leaks, release-only и platform-specific проблем;
- Опыт оптимизации Flutter performance, rendering, memory usage и network performance;
- Опыт работы с code generation (build_runner, json_serializable, GraphQL Codegen);
- Опыт миграции и обновления Flutter, Dart, Android/iOS SDK и сторонних dependencies, включая разрешение dependency conflicts;
- Опыт работы с legacy production-кодом и проведения безопасного рефакторинга;
- Опыт самостоятельного анализа и интеграции сторонних SDK, включая изучение native implementation и документации;
- Опыт ведения технической документации по архитектуре, интеграциям, конфигурации и release-процессу;
- Будет преимуществом опыт FoodTech / E-commerce / Delivery;
- Будет преимуществом опыт разработки white-label / multi-flavor приложений;
- Способность самостоятельно доводить задачу от постановки и архитектуры до production-релиза и последующей поддержки.
Личные качества
- Самостоятельность: задачи приходят с контекстом, но решать нужно без микроменеджмента;
- Перфекционизм в меру: код переживёт рефакторинг, но фича должна выйти в срок;
- Умение сказать «здесь нужен рефакторинг, иначе фича сломает корзину» - и обосновать.
Условия: -
Конкурентная заработная плата (обсуждается по результатам собеседования);
-
Гибридный или удалённый формат работы;
-
Реальная возможность влиять на архитектуру.