About the roleI
In this role, you have an opportunity for significant impact through your ability to increase developer efficiency and product quality through your work. You’ll play an impactful role to build mobile-first experiences Apps.
What you'll be doing
Collaborate with Product Managers, Designers, and Backend Engineers to design and deliver high-quality products on Android
Build end-to-end features of the app: networking, persistence, business logic, and UI
Build efficient and reusable mobile components and architect reliable and scalable mobile solutions
Identify areas of improvement and advocate for mobile best practices
Analyze and optimize UI and infrastructure application code for quality, efficiency, and performance
Our Stack
Android Architecture Components and Android KTX
MVVM with Clean Architecture
Jetpack Compose
Local data persistence: DataStore, Room
Multi-Module Project
Language: Kotlin, Java
Dependency Injection (DI): Hilt
Reactive programming: Flow, LiveData, RxJava
Network: Retrofit, OkHttp, WebSocket, Protocol buffers
Kotlin Coroutines
CI/CD: Github Actions, Jenkins
Test: Espresso, Kaspresso, JUnit, Mockito, Mockk
What you'll bring
3+ years of application development experience on Android
Proficiency with Kotlin and Java
Familiar with Android components and their lifecycle (Activities, Fragments, Services, etc.)
Familiar with Kotlin Coroutines
Familiar with Reactive programming (Flow, LiveData, etc.)
Familiar with RESTful API integration (Retrofit, OkHttp)
Understand and have experience with Dependency Injection (DI)
Understand the Android app architecture guide (UILayer, DataLayer, ViewModel, Repository, etc.)
Experience with local data persistence (Room, SQLite, DataStore, SharedPreferences, etc.)
Understand and have experience in making decisions about mobile application architecture, including data modeling, networking, and data synchronization, and concurrency
Experience in building maintainable and testable code bases, including API design and unit testing techniques
Good communication and collaboration skills to be able to work in a fast-paced and distributed environment
Even better if
Experience with Clean Architecture
Experience with Jetpack Compose
Experience with WebSocket
Experience with RxJava
Experience in developing Multi-Module Project
Experience with Performance Tuning (ANR, Memory Usage, Launch Time, etc.)
Experience with Unit Test, UI Test, Test Driven Design, Mock pattern
Bonus points for
Previous history of working with a remote, distributed team
Experience with mobile video playback and streaming technologies
If you're interested, we encourage you to apply! Every application is reviewed by a member of our team (AI is not used in our recruitment process), and we aim to respond within 48 hours.