Responsibilities:
Design and develop scalable and efficient Android application architectures, ensuring performance, security, and maintainability.
Provide technical leadership and mentorship to Android developers, ensuring the best practices in code quality, architecture, and performance optimization.
Work closely with product managers, UX/UI designers, and other product teams to develop and refine application requirements and ensure smooth integration with different services.
Conduct code reviews to ensure adherence to architecture principles and coding standards.
Stay up-to-date with the latest Android development trends, tools, libraries, and frameworks, incorporating them into project designs when appropriate.
Ensure application performance and scalability by identifying bottlenecks and optimizing for speed and responsiveness.
Create and maintain technical documentation for application architecture, design patterns, and best practices.
Ensure that applications follow security best practices.
Troubleshoot and resolve complex technical issues related to Android application development and architecture.
Codes, integrates, tests, debugs, and refines the software to produce the required product.
Enhances software to reduce operating time or improve efficiency.
Conducts analysis to define, analyze and allocate requirements. Prepares program-level and user-level documentation.
Ability to evaluate current state of architecture, platform and provide architectural recommendations to improve performance, scalability andreliability.
Skills
Mastery of Android development and deep understanding of the entire software development lifecycle.
Strong knowledge of Android SDK, Kotlin, Java, Android Studio, Gradle, and Android Architecture Components (Jetpack).
Deep understanding of Android APIs, and core libraries.
Proficiency in design patterns like MVC, MVP, MVVM, and Clean Architecture.
Understanding Google design principles and interface guidelines.
Experience with performance and memory optimization tools
Expertise in multithreading and asynchronous programming.
Strong analytical and problem-solving skills with the ability to troubleshoot and optimize existing code.
Ability to design robust, scalable, and maintainable architectures and experience in modular development and large-scale application architecture.
Knowledge of Continuous Integration/Continuous Deployment (CI/CD) pipelines for automating tests and deployments.
Expertise in testing frameworks.
Expertise in breaking down applications into smaller, reusable, and testable modules.
Familiarity with multi-module projects and building a scalable modular codebase.
Experience with RESTful APIs and third-party libraries/services integration.
Proven experience with performance tuning, memory management, and optimizing applications for various Android devices.
Strong experience with Git and version control systems.
Experience working in an Agile development environment (Scrum/Kanban).
Excellent verbal and written communication skills, able to convey complex technical concepts to non-technical stakeholders.
Qualifications
Bachelor Degree in Computer Sciences, Computer Engineering or Software Engineering, or equivalent experience.
Advanced degree is preferred. 10+ years of hands-on experience in Android development with at least 3-5 years in an architectural role.
IFE system development experience is a plus.