Senior Software Engineer – Android
Job Purpose:
At Majid Al Futtaim Digital, we are obsessed with building intuitive, engaging and truly transformative experiences that create great moments for our customers, every day. As Senior Software Engineer Android, you’ll play a pivotal role in bringing this vision to life.
As a part of the Engineering team, reporting into the Technical Delivery Manager Android, you will be assigned to a Feature Team as the Android Developer and will have a clear backlog of features that will need to be developed. You will work closely with others within the feature team to frame problems, to develop the right solutions and ultimately ship great software.
Job Details – Key Responsibilities and Accountabilities:
We are looking for Senior Software Engineer Android responsible for the development and maintenance of Android applications aimed at a vast number of diverse Android devices. Your primary focus will be the development of Android applications and their integration with back-end services. You will be working along-side other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential
The job description will require to:
· Translate designs and wireframes into high quality code.
· Design, build, and maintain high performance, reusable, and reliable Java code.
· Ensure the best possible performance, quality, and responsiveness of the application.
· Identify and correct bottlenecks and fix bugs.
· Help maintain code quality, organization, and automatization.
· Solid understanding of the full Android development life cycle.
· Recognizes and understands use of design patterns for intermediate applications. Participates and provides feedback in design reviews.
· Develops code for intermediate modules, following documentation and development standards.
· Applies usability and future state architectures to develop technical components according to design specifications.
· Assists Quality Control personnel with functional tests.
Measure of Success – Illustrative KPIs:
Illustrative KPIs as follows:
- Success will be measured based on impact across customer acquisition, activation rates, retention rates, referral revenues, ATV, ARPU, LTV and other similar metrics
- Due dates.
- Code quality.
- Solving complex technical problems.
- Technical sessions.
- Agile process metrics “Leadtime, Cycle time, Team velocity, and Open/close rates”.
- Code documentation.
- SOLID principles and Design patterns.
- Quality of delivery.
- Data structure and algorithms.
- Application crash rate.
- Clean Code, Maintainability and Re-usability.
- Tickets burn rate.
Personal Characteristics and Required Background:
Skillset (job specific technical skills and behavioral competencies needed)
· Native mobile application development on Android with fluency in Jave, RxJava, Kotlin, Android Studio, Android NDK, JUnit
· Multi-Threading and Background services.
· Experience with memory management and memory/performance profiling.
· Applied understanding of resource constraints including battery life, network availability, etc.
· Familiarity with JSON, REST-based APIs, XML, JavaScript, and interfacing applications to server-side API’s.
· Knowledgeable about common backend system integrations and web services.
· Experience with Gradel, Maven, and Android build tools.
· Has shipped and maintained apps, knowing ins and outs of Google’s store submission process.
· Design-minded attention to user interface implementation.
· Strong knowledge of Android UI design principles, patterns, and best practices.
· Experience with most features of the Android support libraries and popular third-party libraries.
· Experience with offline storage, threading, and performance tuning.
· Design and implement software algorithms. A knack for benchmarking and optimization.
· Proficient understanding of code versioning tool such as Git
· Familiarity with continuous integration.
· Implement high quality code, meet development schedules, troubleshoot and debug code.
· Ensure new code, features and software product meet acceptance criteria.
· Thinks Group
· Drives Impact
· Fosters Innovation
Minimum experience
5 – 9 Years in a similar role
Minimum Qualifications/education
Bachelor’s degree in relevant field or equivalent professional experience