YoloPrice - это embeddable e-commerce платформа, которая встраивается в сторонние мобильные приложения и берет на себя ключевую часть логики: поиск, данные, синхронизацию и работу приложения в online.
Мы развиваем мобильный SDK как один из основных продуктов компании.
Это технологический слой внутри клиентских приложений, который берет на себя работу с бизнес-логикой, данными и сетевыми протоколами, взаимодействует с платформой через API и должен быть быстрым, надежным и незаметным для пользователя.
Сейчас мы приступаем к переработке мобильного SDK с учетом накопленного опыта и нашего нового видения ключевой ценности продукта. В основе разработки уже спроектированная архитектура Kotlin Multiplatform. Наша цель создать более гибкую, надежную и масштабируемую мобильную платформу для интеграции в сторонние приложения.
Нам нужен самостоятельный инженер, которому интересно взять на себя ответственность за ключевую технологическую часть продукта, реализовать новую версию SDK и обеспечить ее дальнейшее развитие и стабильную работу.
Что вы будете делать
- Реализовывать и развивать SDK, проводя рефакторинг существующей архитектуры Kotlin Multiplatform;
- Развивать сетевой и data layer: управление запросами, retry-стратегии, throttling, обработку ошибок, кэширование, локальное хранение и синхронизацию данных;
- Разрабатывать асинхронные пайплайны с контролем конкурентности и latency, реализовывать фоновые операции и управление состоянием данных;
- Реализовывать realtime-взаимодействие и persistent connections, включая механизмы восстановления соединения, а также интеграцию нативной и веб-части через WebView и взаимодействие с backend;
- Обеспечивать корректную интеграцию и работу SDK в сторонних приложениях: заниматься тестированием, диагностикой, мониторингом и оптимизацией производительности и потребления ресурсов.
Что важно
- Готовы проверить свой скилл разработки на Kotlin? Мы ожидаем 81 level;
- Практический опыт с Kotlin Multiplatform - не UI, на системном уровне;
- Иметь опыт разработки SDK, библиотек, framework или сложных переиспользуемых мобильных компонентов;
- Знать как интегрировать мобильные библиотеки или SDK в сторонние приложения;
- Регулярно практиковать проектирование и реализовывать архитектуру мобильных приложений или платформенных решений;
- Быть, не теоретически знакомым с асинхронностью и конкурентностью (Kotlin Coroutines / Flow);, скорее ежедневно работать с задачами такого рода;
- Опыт проектирования сетевого взаимодействия на уровне production, как минимум применять модель OSI при разработке сервисов;
- Понимание построения data-heavy систем на клиентской стороне: кэширование, синхронизация, консистентность данных;
- Не забывать самостоятельно реализовывать технические решения, тестировать и отлаживать их;
- Навыки системного debugging и поиска первопричин проблем ≠ закрыть багрепорт тикет.
Будет плюсом:
- Если вы разрабатывали и поддерживали приложения с DAU > 1000;
- Работали со Swift и Swift Concurrency;
- Имели опыт интеграции WebView и взаимодействия нативной и веб-части;
- Вам доводилось работать с realtime-коммуникациями, streaming и persistent connections;
- Сталкивались с SQLDelight, OkHttp и аналогичными инструментами;
- Имеете представление о работе с поисковыми системами, ранжированием или e-commerce системами.
За какой результат вы будете отвечать
Обеспечить стабильную и предсказуемую работу SDK 2.0 в собственных и сторонних мобильных приложениях.
Результатом должны стать:
- Корректная работа всех основных сценариев SDK без неожиданных побочных эффектов;
- Предсказуемое управление состояниями, запросами и асинхронными операциями без дублирования операций и неконтролируемого накопления запросов;
- Надёжная работа сетевого слоя, хранения, кэширования и синхронизации данных;
- Стабильное взаимодействие SDK с host-приложением и его компонентами;</l