About the Role
We are looking for a Proficient Android Developer to build and improve TAPSI’s Android applications using Kotlin. In this role, you will independently deliver well-scoped features, contribute to technical discussions, and collaborate with your teammates to create reliable and intuitive user experiences.
You will take ownership of your work from technical planning through release and maintenance, while developing your skills through code reviews, knowledge sharing, and hands-on problem-solving.
Responsibilities
- Develop and maintain Android features using Kotlin and Jetpack Compose.
- Own well-scoped features from technical planning through implementation, testing, release, and maintenance.
- Collaborate with product, design, backend, and QA teams to clarify requirements, define acceptance criteria, and address edge cases.
- Apply established architectural patterns and coding conventions to write maintainable, testable code.
- Write and maintain automated tests covering core behavior, edge cases, and failure scenarios.
- Investigate and fix bugs, crashes, and performance issues within your area of ownership.
- Participate in code reviews and technical discussions, providing constructive feedback and incorporating feedback from others.
- Communicate progress, dependencies, and risks early, and seek input when decisions affect the broader codebase.
- Identify opportunities to improve existing code and contribute to reducing technical debt.
Requirements
- Proficiency in Kotlin and hands-on experience building and maintaining production Android applications.
- Solid understanding of Android fundamentals, including component lifecycles, configuration changes, and state restoration.
- Practical experience with Coroutines and Flow for asynchronous operations and reactive state management.
- Hands-on experience with Jetpack Compose, including state management, navigation, and side effects.
- Working knowledge of SOLID principles, Clean Architecture, and MVI/MVVM patterns.
- Experience using Koin for dependency injection.
- Familiarity with multi-module projects and working within existing module boundaries.
- Familiarity with Retrofit and Android Jetpack libraries.
- Experience writing unit tests and familiarity with UI testing.
- Ability to debug issues using Android Studio and related development tools.
- Ability to deliver well-scoped features independently and collaborate effectively with teammates.
Nice to Have
- Knowledge of and hands-on experience with Compose Multiplatform (CMP), including shared UI development and handling platform-specific behavior.
- Knowledge of and hands-on experience with Kotlin Multiplatform (KMP), including shared business logic, platform-specific implementations, and interoperability.
- Familiarity with spec-driven development, including using explicit specifications and acceptance criteria to guide implementation and testing.
- Familiarity with Android Studio profiling tools.
- Familiarity with Gradle build scripts and dependency management.