Ищем ведущего инженера, которому можно доверить архитектуру, развитие и эксплуатационную устойчивость сложного программного продукта на пересечении мобильной разработки, серверных систем и прикладного искусственного интеллекта.
Позиция предполагает самостоятельную техническую ответственность: от декомпозиции продуктовых требований и выбора архитектурных компромиссов до реализации, выпуска и сопровождения изменений в production. Нам важна способность видеть систему целиком и управлять качеством её взаимодействующих компонентов.
Задачи
- Проектировать и развивать кроссплатформенное приложение на Flutter/Dart для iOS и Android: формировать границы модулей, управлять состоянием, зависимостями и асинхронными процессами, обеспечивать корректное поведение при нестабильном соединении и изменении жизненного цикла приложения.
- Реализовывать функциональность через несколько уровней системы — мобильный клиент, HTTP API, серверную бизнес-логику, фоновые обработчики и интеграционные адаптеры; поддерживать согласованность контрактов и обратную совместимость при независимом обновлении компонентов.
- Развивать серверную архитектуру на PHP 8.2, Slim 4 и PHP-DI; проектировать структуру данных, транзакционные границы и взаимодействие с PostgreSQL, Redis и PgBouncer.
- Организовывать потоковую доставку результатов через SSE, восстановление прерванных операций и согласованность клиентского состояния с серверной историей; устранять гонки, дублирование действий и некорректные переходы между состояниями.
- Проектировать устойчивое выполнение продолжительных задач: идемпотентную обработку, контролируемые повторы, тайм-ауты, отмену операций, обработку частичных отказов и восстановление после сбоев без неконтролируемого повторного исполнения.
- Формировать унифицированный интеграционный слой взаимодействия с языковыми и мультимодальными моделями: нормализовать разнородные протоколы, управлять контекстными окнами, токенными бюджетами, форматами ответов и жизненным циклом обработки данных.
- Развивать механизмы авторизации, управления сессиями, подписками, квотами и правами доступа; обеспечивать согласованность покупок и серверных статусов с учётом повторных уведомлений, задержек и недоступности внешних зависимостей.
- Обеспечивать наблюдаемость и эксплуатационную устойчивость системы: диагностические события, метрики, корреляцию запросов, анализ инцидентов, оптимизацию производительности, совместимые миграции и контролируемый выпуск изменений.
Требования
- От 6 лет коммерческой разработки ПО; опыт самостоятельного проектирования, реализации и сопровождения сложных систем с ответственностью за эксплуатационные последствия принятых решений.
- Глубокое владение Flutter/Dart, практический опыт с BLoC/Cubit, GetIt и Dio; понимание асинхронной модели выполнения, управления состоянием, памяти, конкурентного исполнения и профилирования мобильных приложений.
- Понимание платформенной специфики iOS/Android, системных разрешений и жизненного цикла приложения; способность работать с platform channels и нативными интеграциями на Swift/Kotlin.
- Сильная серверная подготовка: PHP 8+, проектирование REST API, SQL, индексы, транзакции, блокировки, оптимизация запросов, кеширование и фоновые вычисления.
- Практическое понимание распределённого взаимодействия: порядок событий, согласованность данных, повторяемость операций, идемпотентность и поведение системы в условиях частичных отказов.
- Опыт прикладной интеграции LLM и генеративных API: формирование контекста, потоковая обработка, получение структурированных ответов, валидация результатов и управление ограничениями внешних провайдеров.
- Понимание недетерминированной природы генеративных моделей и методов оценки качества, задержки и стоимости запросов; умение отделять транспортный сбой от подтверждённого отказа операции и выбирать корректную стратегию восстановления.
- Понимание рисков prompt injection и необходимости разграничивать содержимое, сформированное моделью, доверенную бизнес-логику, права доступа и операции с пользовательскими данными.
- Уверенная работа с Git, Docker Compose, Nginx/Caddy и S3-совместимыми хранилищами; способность локализовать проблему по всей цепочке обработки запроса.
- Опыт unit/widget/integration-тестирования, содержательного code review и документирования архитектурных решений; способность превращать неполные требования в проверяемый технический результат.
Будет преимуществом
- Практический опыт RAG, embeddings, векторного поиска и построения воспроизводимых оценок качества AI-функциональности.
- Опыт tool/function calling, проектирования инструментов для моделей и контроля допустимых действий.
- Опыт автоматизации мобильных релизов, оптимизации мультимодальных интеграций и повышения надёжности платёжных механизмов.
Условия
- Заработная плата от 600 000 ₽ в месяц на руки. Итоговый уровень обсуждается с учётом экспертизы и зоны ответственности.
- Постоянная работа, полная занятость, оформление по трудовому договору.
- Офисный или гибридный формат работы в Москве.
- График 5/2, восьмичасовой рабочий день; выплаты два раза в месяц.
- Участие в развитии собственного продукта с ответственностью за архитектуру, качество реализации и технический результат.
В отклике расскажите о 1–2 проектах сопоставимой сложности: какие решения вы принимали лично, какие ограничения учитывали и какого результата достигли. Особенно интересны примеры ответственности за мобильный клиент, серверную часть и устойчивость системы в эксплуатации.