The fastest courier, transport, food delivery and shopping services provider in Indonesia.
Principal Engineer - Android
Job Description / Skills Required
About the role:
We are the Reliability team in the Mobility Marketplace group. Our prime objective is to make sure that any new feature in the Marketplace domain can be shipped for experimentation by business in a matter of days. We act as a central binding agent for Pricing, Supply and Matchmaking teams and make sure that the overall architecture and infra is flexible, designed for failure, easily extensible and scalable.
We achieve these objectives through building on-demand intelligence using real time data, using latest infrastructure scalability practices, using machine learning and cutting edge technology.
As a Principal software engineer, you'll work closely with product, operations, and engineering teams throughout the company.
What You Will Do
- Create and maintain MarketPlace SDK from scratch
- Provide a vision to Market Place to grow beyond by understanding feasibility and existing features
- Pair with team members on functional and nonfunctional requirements and spread design philosophy and goals across the team
- Work with Product Development group counterparts to anticipate and address risks such as technical & architectural debt, downtime, data leaks, and execution problems
- Encourage participation in the design review process, and is accountable for system designs
- Handle end to end delivery, project management and team growth
- Collaborate with QAs, PMs and ensure timely delivery of high-quality apps
- Implement and evangelize best practices for mobile development
- Deliver complex products/features and handle project management and team growth for the same
What You Will Need
- Minimum of 8 years of experience in Android engineering
- Proficiency in developing frameworks and SDKs
- In-depth knowledge and very well understanding of Android Framework
- Good and relevant knowledge of design patterns and Android architectural components ( life-cycle, Room DB and ViewModel)
- Proficient in Kotlin, reactive programming (RxJava) and Dependency Injection (Dagger)Strong knowledge of Android SDK, SQLite, familiarity with RESTful APIs, deal with different Android Versions, deal with different screen sizes, push notifications, Android Studio
- Proficient with Continuous integration (CI)Good knowledge of version control (GIT)Strong experience in Object Oriented Programming and Java
- Strong and hands on knowledge of designing skills and patterns
- Proficient in writing unit/functional tests
- Excellent debugging and problem solving skills
- Very well understanding of Agile programming principles Should be able to plan, prioritize, estimate and execute releases with good degree of predictability
- Ability to scope, review and refine user stories for technical completeness and to alleviate dependency risks
- Should be able to lead the engineering team and mentor team members Excellent debugging and problem solving capability
- Should be able to Write optimized, elegant, and well-documented code
- Should be a team player with good interpersonal skills