The Android Developer will work with our talented engineers to design and build the next generation of our mobile applications. Android Developers will work closely with other app developers and other technical teams.
Responsibilities:
- Design and build advanced applications for the Android platform.
- Collaborate with cross-functional teams to define, design, and ship new features.
- Automated testing for robustness, including edge cases, usability, and general reliability.
- Work on bug fixing and improving application performance.
- Continuously discover, evaluate, and implement new technologies to maximize development efficiency.
Technical requirements:
- Design, build, and maintain high-performance reusable, reliable Kotlin and Java code.
- Implement app components such as Activities, Fragments, Services, Broadcast Receivers, and Content Providers.
- Maintain UI components using XML, ViewBinding, and Jetpack Compose.
- Utilize the Navigation component for seamless user navigation using both XML and Compose.
- Strong knowledge of the Android framework, SDK, and related libraries ( Live Data, Flow, Retrofit, OkHttp, Dagger, Hilt, etc…)
- Extensive experience in asynchronous programming with a focus on coroutine utilization.
- Proficient understanding of version control systems, such as Git.
- Manage local storage using Shared Preferences and Room.
- Familiarity with using architecture patterns such as MVVM and MVP.
- Developing reusable and testable codebase with respect to architecture guidelines like Clean Architecture.
- Develop Software by using TDD design techniques utilizing JUnit4, JUnit5, and MockK.
- Applying SOLID guidelines and using GOF Design Patterns.
- Experience in developing software using CI/CD practices.
General Requirements:
- 1 – 3 years of experience in Software Development.
- Bachelor’s degree in Computer Science or related degree.
- Fluent in Kurdish and English. Intermediate knowledge of Arabic is preferred. Excellent communication and interpersonal skills.