Roles and responsibilities
As an Android Developer, take your passion for crafting exceptional apps to the next level. In this position, you will independently develop features and improve our native applications. Your contributions will shape the way our users interact with our products every day. You’ll be collaborating closely with a talented team, turning creative ideas into elegant solutions, and ensuring high standards of code quality and application performance. This role is perfect for someone with a couple of years of experience looking to exert more influence on project outcomes and take ownership of their work.
We provide a highly international and collaborative environment, emphasizing the talent and development of employees. Our product teams are genuinely cross-functional - design, engineering, data, and product work closely to build excellent products. This is your opportunity to work with a world-class team. Join us in shaping the future of real estate.
Key Responsibilities
- Develop new user-facing features using Kotlin, Jetpack Compose, and Coroutines
- Optimise app performance and implement reusable components
- Write clean, maintainable code and ensure technical best practices are followed
- Participate in code reviews, troubleshoot issues, and identify areas for improvement
- Collaborate with product management and designers on features and ideas
- Work closely with product management and design to translate requirements into technical specs
- Own performance benchmarking, monitoring and optimization
Desired Qualifications
- 3+ years experience as an Android developer
- Proficiency with Kotlin, Jetpack Compose, and Coroutines
- Strong understanding of app standards, UI/UX best practises, and accessibility in apps
- Ability to understand business requirements and translate them into technical implementation
- Self-directed, analytical, highly responsible, and a team player
- Strong verbal and written communication skills (English)
Other Capabilities
- Computer Science Degree (or similar education)
- Strong understanding of CI/CD, with tools such as Azure DevOps, Bitrise or GitHub Actions
- Experience with A/B Testing and Feature Flags
Desired candidate profile
-
Proficiency in Java and Kotlin
- Java: Historically, Java has been the primary language for Android development. It is still widely used for legacy applications and provides a strong foundation for Android development.
- Kotlin: Kotlin is now the preferred language for Android development due to its modern syntax, concise code, and better integration with Android APIs.
-
Android SDK and APIs
- In-depth knowledge of the Android Software Development Kit (SDK) and its various libraries and tools.
- Familiarity with key Android components like Activities, Fragments, Views, and Services.
-
UI/UX Design for Mobile Apps
- Expertise in designing user interfaces using XML and tools like Android Studio’s Layout Editor.
- Implementing Material Design principles and ensuring a responsive, intuitive, and consistent user experience across different screen sizes and devices.
-
Android Frameworks and Libraries
- Familiarity with Android libraries and frameworks such as Jetpack (for lifecycle management, UI components, and data storage), Room (for database access), Retrofit (for API calls), and Glide/Picasso (for image loading).
- Experience with RxJava or LiveData for managing asynchronous programming and event handling.
-
Database Management
- Knowledge of SQLite for local storage and understanding how to implement databases for offline functionality.
- Experience with Room or Realm for more modern, object-oriented data storage solutions.
-
Version Control and Collaboration
- Proficiency in using Git for version control and collaboration. Familiarity with platforms like GitHub or GitLab for code sharing and team collaboration.
-
Android Debugging and Testing
- Familiarity with Android Debugging tools and techniques to troubleshoot and resolve issues efficiently.
- Experience with unit testing and UI testing frameworks like JUnit, Espresso, and Mockito.
-
APIs and Networking
- Integrating third-party APIs and web services using technologies such as RESTful APIs, JSON, and OAuth for authentication.
- Knowledge of Retrofit and OkHttp for networking tasks.
-
Performance Optimization
- Ability to optimize applications for performance, ensuring fast load times, low memory usage, and battery efficiency.
- Familiarity with Android profiling tools like Android Profiler and LeakCanary for memory leak detection.
-
Familiarity with Android Studio and Tools
- Proficient in using Android Studio, the official integrated development environment (IDE) for Android development.
- Experience with tools such as Android Emulator, Gradle, and Firebase for building, testing, and deploying apps.