Мы находимся в поиске Android разработчика для развития Ленты и Сервиса Рекомендаций (Дискавери).
Лента - это сервис с десятками миллионов DAU на всех платформах (web, mob.web, android, ios). Это ключевая часть социальной сети, в которой пользователи получают всю информацию, на которую они подписались: контент друзей, фото, посты и видео из сообществ, дружбы и т.д.
Дискавери - сервис с миллионами DAU, в котором пользователю рекомендуется контент, исходя из его предпочтений с помощью различных моделей машинного обучения и не только.
В задачу сервисов входит не только отобрать интересный контент пользователю, но и сделать это быстро. Для решения этих задач мы используем гибкую систему экспериментов, в которых задействованы различные алгоритмы ML. Для обеспечения быстродействия и отказоустойчивости у нас поднято более 600 инстансов в трех датацентрах.
Наш идеальный кандидат заинтересован в разработке продукта от идеи до реализации и хочет влиять на конечный вид продукта
Какой стэк мы используем?
- Android Jetpack (ViewModel, LiveData, Room, WorkManager, PagingLibrary и другие).
- RxJava, Dagger 2, Retrofit, Fresco.
- Unit4, Espresso, Barista.
- Git, TeamCity.
Задачи
- Участие в переработке механики подачи контента пользователю и получении фидбека с помощью передовых решений в сфере UI/UX.
- Разработка концепций и прототипов UI/UX решений, и участие в их запуске на реальных пользователей.
- С помощью новых методик подачи контента мы планируем значительно увеличить аудиторию сервиса, а значит твой код будет запускаться еще чаще и будет приносить еще больше пользы.
Требования
- Знание Java, Kotlin. Опыт коммерческого программирования минимум 3 года.
- Знание SOLID принципов и MV* паттернов (MVP, MVVM и другие).
- Понимание Single Activity Architecture, Multi-module project.
- Приветствуется опыт работы с медиаконтентом - фото, видео, музыка.
- Желание профессионально развиваться и погружаться с головой в продуктовые решения.
- Готовность построить доверительные отношения с командой: умение принимать критику и открыто высказывать свое мнение.
- Быть готовым признавать неудачные гипотезы: такое случается и поэтому мы ждем, что ты будешь относится к этому как к способу извлечь уроки, сделать выводы и в следующий раз не допустить вместе с командой этих ошибок.
- Умение делиться знаниями и развивать компетенции в команде.