Job Title: Senior Android Engineer
Role and Responsibilities:
- Advanced Solution Design: Analyze complex client requirements and translate them into scalable, modular Android application features, emphasizing long-term maintainability and performance.
- Architecture & System Design: Architect and implement Android applications using clean architecture, multi-module project structures, and advanced design patterns (MVVM, MVI, etc.).
- Performance & Optimization: Optimize applications for maximum speed, responsiveness, and resource efficiency using profiling tools and performance metrics.
- Artifact Management & Publishing: Manage multi-repository projects and oversee the creation, versioning, and publishing of reusable artifacts (e.g., libraries, SDKs) to internal or external repositories (Maven, JitPack).
- Socket & Real-Time Communication: Implement and maintain real-time communication features using WebSockets or other socket protocols, ensuring robust, low-latency data exchange.
- Automation & CI/CD: Lead automation initiatives using Fastlane and CI/CD pipelines, ensuring reliable builds and deployments across multiple environments.
- Collaboration & Leadership: Collaborate with product managers, designers, and backend engineers, providing technical leadership and fostering a culture of innovation.
- Mentorship & Knowledge Sharing: Mentor junior developers, conduct code reviews, and drive best practices to ensure high-quality, maintainable code.
- Testing & Quality Assurance: Champion automated testing (unit, integration, and UI tests) and enforce a strong quality-first approach throughout development.
Required Skills & Experience:
Technical Skills:
- Core Languages: 5+ years of experience with Kotlin and Java, with deep understanding of the Android SDK.
- Architecture & Design Patterns: Expertise in clean architecture and established design patterns.
- Multi-Module Projects: Proven experience developing and managing multi-module Android projects, enabling modularization and dynamic feature delivery.
- Networking & Sockets: Extensive experience with RESTful APIs, WebSockets, and handling real-time data streams efficiently.
- Dependency Injection: Advanced usage of Dagger, Hilt, or Koin for dependency management.
- Concurrency: Strong knowledge of Coroutines, Flow, and managing complex asynchronous operations.
- Artifact Management: Experience building, publishing, and maintaining reusable libraries and artifacts in private and public repositories (Maven, JitPack).
- Build Automation & CI/CD: Expertise in Fastlane for automation and experience managing CI/CD pipelines (GitLab CI, Jenkins, etc.).
- Version Control: Proficiency in Git, GitFlow, and handling complex branching strategies.
Preferred Tools & Libraries:
- Jetpack Compose for modern declarative UI design.
- Room, WorkManager, and Navigation Component for robust app architecture.
- Retrofit, OkHttp, and Moshi for network communication.
- Firebase services (Firestore, Cloud Messaging, Analytics) integration.
- Performance monitoring and optimization tools (e.g., LeakCanary, Firebase Performance).
Personal Skills:
- Strategic Problem-Solving: Ability to solve complex technical challenges with innovative solutions and foresight.
- Time Management & Prioritization: Skilled in managing multiple priorities in fast-paced environments.
- Collaborative Mindset: Strong interpersonal skills with a focus on teamwork and mentorship.
- Passion for Excellence: Commitment to continuous learning and delivering top-tier solutions.
Qualifications:
- Bachelor’s degree in Computer Science, Software Engineering, or a related field.
- Professional certifications in Android development or related fields are a plus.