Software Engineer, Mobile (Android)
Grab
- Jakarta
- Permanent
- Full-time
- Work closely with the product and design team to understand requirements, provide product feedback, own and implement the product from start to finish.
- Drive and participate in technical discussions with other engineering teams
- Write code that is reusable, scalable and testable. Make sure products are delivered on time and with high quality.
- Collaborate with QAs to make sure our app releases are always worthy of five star ratings.
- Review code from other team members, provide constructive feedback and strive to raise the engineering bar.
- Take initiative to improve the codebase proactively. Propose and set better engineering solutions for the team.
- Be responsible and responsive during on-call duty. Able to debug and troubleshoot production issues.
- Provide technical guidance, mentorship and knowledge sharing to peers.
- A degree in computer science, software engineering or related fields.
- Strong programming experience in Java or Kotlin, familiar with design patterns, multi-threading, have a good coding style and habits.
- Understanding the Android system and programming paradigm including OOP, TDD, reactive patterns and dependency injection.
- Know well of AndroidSDK, deep understanding of Android infrastructure, components, UI, data storage etc.
- Working knowledge of several architectural approaches including clean architecture, MVP and MVVM.
- Experience of using Android platform open source framework, knowledge of EventBus, Retrofit, Glide, OKHTTP, Dagger, RxJava and other third-party libraries.
- Experience in Android automated testing, including unit testing, UI testing, familiar with Android testing framework like Espresso, UI Automator, Mockito and Powermock or Appium.
- Experience in user behavior analysis, log and error collection and analysis tools.
- Work attitude is conscientious, have a strong sense of responsibility and teamwork, positive and optimistic, and willing to share.
- Fluent in English, with the ability to communicate fluently in English.
- The ability to independently develop Android apps or contribute to well-known open-source projects is favored.
- Working knowledge of various architectural approaches, caching, data storage, and security is valued.
- 2-4 years of mobile engineering experience, specifically with a record of building complex applications, and experience in live/online projects is sought.