Разработка Backend для Мобильного Приложения с AI-Генерацией Музыки
Цель проекта
Создание надежной, масштабируемой и безопасной серверной части (backend) для iOS-приложения, которое использует искусственный интеллект для генерации музыки. Backend будет ядром, обеспечивающим работу всего функционала приложения.
Кого мы ищем
Backend-разработчика уровня Middle+ или Senior, который обладает опытом создания подписочных мобильных продуктов и способен самостоятельно вести разработку ключевых модулей системы.
Стек технологий
- Основной язык и фреймворк: Python (FastAPI) или Node.js (NestJS) - на выбор кандидата с соответствующим опытом.
- Базы данных: PostgreSQL (основная БД), Redis (кеширование, сессии).
- Очереди задач: Celery (для Python) или Bull (для Node.js) - для управления фоновыми задачами, такими как генерация музыки AI.
- Платежные системы: Stripe, Apple In-App Purchases (IAP).
- Инфраструктура: Amazon S3 (или совместимое хранилище) для работы с файлами, JWT для аутентификации.
Ключевые задачи и функционал
- Проектирование и разработка основного REST API (или GraphQL) для мобильного клиента.
- Реализация системы подписок (subscriptions) с различными тарифами и условиями.
- Интеграция платежных шлюзов (Stripe, Apple IAP) для безопасной обработки транзакций.
- Настройка и управление очередями задач для асинхронной генерации музыки с использованием AI-моделей.
- Интеграция с внешними AI-сервисами или развертывание собственных моделей.
- Реализация загрузки, хранения и управления аудиофайлами в облачном хранилище (S3).
- Настройка аутентификации и авторизации пользователей (JWT).
- Оптимизация производительности и обеспечение безопасности API.
Требования к кандидату
- Опыт коммерческой backend-разработки от 3 лет.
- Глубокое знание выбранного стека (Python/FastAPI или Node.js/NestJS).
- Практический опыт реализации подписочных моделей (billing, recurring payments) в мобильных приложениях.
- Опыт работы с очередями задач (Celery, Bull, RabbitMQ) и фоновыми процессами.
- Умение проектировать отказоустойчивую и масштабируемую архитектуру.
- Самостоятельность, ответственность и четкое понимание жизненного цикла разработки.