Фуллстек-разработчик (Android + Backend) для мобильного приложения

Акс

Фуллстек-разработчик (Android + Backend) для мобильного приложения

Москва, улица Ибрагимова, 31

Метро: Измайлово

Описание вакансии

Разработка полностью рабочего Android-приложения на четырёх языках, интеграция email, оплаты, телефонии.
Критично: соблюдение 152-ФЗ, оптимизация под высокую нагрузку (тысячи пользователей), безопасный код, токен-авторизация.

Что нужно сделать

Разработать Android-приложение с полным функционалом веб-версии (анализ существующего бэкенда)
Интегрировать с PHP REST API (токен-авторизация, пагинация, кэширование)
Обеспечить SSL-pinning, шифрование персональных данных, защиту от инъекций
Реализовать соответствие 152-ФЗ: HTTPS, ролевая модель, логирование доступа, локализация PD в РФ

Упаковать и подготовить к публикации в RuStore
Сделать полный перевод на 4 языка (локализация)
Подготовить код под высокую нагрузку (оптимизация запросов, кэширование, offline-first режим)

Обязательные требования

Backend (PHP + PostgreSQL):
PHP 8+: typed properties, enums, attributes, PDO prepared statements
REST API: создание эндпоинтов, JSON-ответы, статус-коды (200/401/403/404/500)
Безопасный код: защита от SQL-инъекций (PDO), XSS (htmlspecialchars), CSRF (токены)
PostgreSQL: оптимизация запросов (индексы, query planning), транзакции, миграции
Миграция SQLite → PostgreSQL: конвертация типов данных, индексов, секейров
Проектирование API для мобильных: пагинация, кэширование, минимизация network calls
Токен-авторизация: JWT/OAuth, ролевая модель (RBAC), refresh токены

Android-разработка (Вариант 1 — Kotlin):
Kotlin: coroutines, Flow, ViewModel, LiveData, Room
Retrofit: HTTP-запросы, интерцепторы, JSON-парсинг
SSL-pinning: реализация через OkHttp CertificatePrivateKey
Токены: JWT в EncryptedSharedPreferences, refresh механизм
Room/SQLite: локальное кэширование, offline-first режим
EncryptedSharedPreferences: шифрование PD при хранении

Android-разработка (Вариант 2 — Flutter):
Flutter: Widgets, State Management (Provider/Bloc/Riverpod), Navigator 2.0
Dio/HTTP: REST-запросы, интерцепторы, JWT токены
Локализация: intl paquete, 4 языка, dynamic locale switching
Безопасность: SSL-pinning через dio_http2_adapter, шифрование через encrypted_storage

Local Database: SQLite через sqflite, offline-first с sqflite_common_ffi

Понимание 152-ФЗ:

HTTPS везде (TLS 1.3), шифрование PD при хранении и передаче
Ролевая модель (RBAC): admin, user, moderator с разными правами
Логирование доступа к персональным данным (кто, когда, что увидел)
Локализация PD строго в РФ (серверы в России, no cloud outside RU)

Базовый DevOps:

nginx: конфигурация reverse proxy, SSL-терминация, gzip compression
Docker: контейнеризация PHP + PostgreSQL, docker-compose для локальной разработки
CI/CD: GitHub Actions / GitLab CI (авто-тесты, build, deploy)
Бэкапы: pg_dump, cron-скрипты, восстановление баз
Мониторинг: logging (Sentry, Lograge), метрики нагрузок

Желательные требования (плюсы):

Опыт публикации в RuStore / российских маркетплейсах (требования, metadata, оплата)
Понимание Android-стека на уровне «что нужно мобильным»: Retrofit, tokens, SSL-pinning, Room, coroutines
Опыт Flutter для мультиплатформы (Android + iOS в будущем)
Нагрузочная готовность: оптимизация под миллионы пользователей (Redis кэширование, индексы PostgreSQL, query optimization)
Интеграция платежных систем: T-Bank, RuStore Payment
Offline-first архитектура: локальное кэширование, queue для действий без сети
Тестирование: unit-тесты (PHPUnit, Kotlin Test), integration-тесты, E2E
Постоянная работа, обновления, бонусы и всякие улучшения условий жизни для командного игрока.


Навыки
  • Flutter
  • Android
  • Kotlin
  • PHP
  • PostgreSQL
Посмотреть контакты работодателя

Адрес

Похожие вакансии

Аэроэкспресс
  • Москва

  • Не указана

Рекомендуем
VARNER MEDIA
  • Москва

  • Не указана

Рекомендуем
Москвина Наталья Александровна
  • Москва

  • до 150000 RUR

Рекомендуем
Таргет Лид
  • Москва

  • до 300000 RUR

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию