Skills
- java
- Android
- Kotlin
Job Description
- Analyzes, designs, develops, debugs, supports and tests native Android mobile applications using Java, Kotlin, Android SDK.
- Design code architecture based on various architectures and design patterns such as Clean Architecture, Model-View-ViewModel, Singleton, Observable pattern, Adapter Pattern, Dependency Injection, Builder and Factory Pattern.
- Experience in Multi-Modular architecture and one demand/conditional modules
- Integrate with backend APIs and parse data structures such as ArrayLists, Sets, Trees, Graphs, PriorityQueues, etc. using various algorithms such as Hashing, Binary Search, Merge Sort and Quick Sort.
- Completes tech design documentation and reviews.
- Create testing suites for Android using Junit and Mockito for the code coverage.
- Use Android Profiling, Leak Canary and linting tools to perform CPU Utilization, memory leaks, time & resources utilization.
- Interact with users and product owners to define system requirements and/or necessary modifications.
Qualifications
Your Experience
- 5+ years of Java & Android development experience
- 2+ years of Kotlin development experience with knowledge of Coruotuines and Flows
- Strong knowledge of various Android components such as Fragments, Activities, Nav Graphs, Animations, Video Player, Encrypted Shared Preferences, Firebase, Google Play Services, Custom Dialogs, Permissions, Encryption, Android Security, Services, Google Location Services, Proguard, Retrofit, Hilt, OkHttp and Fresco/Glide
- Experience with Android build process (Gradle)
- Build and maintain Continuous Integration/Continuous Delivery using Team City, Jenkins, Fastlane or any other similar tool
- Familiarly with Object-Orient Design and development best practices
- High level skills in Java, Kotlin and strong ability with latest Android SDKs
- Evaluates program modules for performance scalability and openness of design
- Reviews and certifies code of others
- Develops programming guidelines/standards and makes them accessible to other programmers
- Ability to develop functional, technical and user interface designs for an application that meets the defined requirements (business, system performance and standards)
- Experience with web applications that use responsive design to better support mobile browsers
- Identifies and Evaluates business requested capabilities and advises on short- and long-term effects of those solutions
- Support bug fixes & enhancement and work along with Quality Assurance team.
- Review and approve code pull requests in Bitbucket
- Maintain code repository using Git, Bitbucket as version control system
- Lead, develop, and mentor software engineering team members providing learning and growth opportunities
- Leads the evaluation and selection, of new technologies from initial idea through standardization
- Provide or recommend required training programs for developing appropriate skills within the organization
- Initiates and leads teams to enable the achievement of a competitive advantage
- Manage complex/large environments that include multiple platforms
- Provide inputs on the evaluation and selection of new technologies from initial idea through standardization
- Provide or recommend required training programs for developing appropriate skills within the organization
- Explore user trends and reports generated using Analytics tools such as Adobe or Google Analytics
- Experience in App Push notifications
- Monitor performance of the Production Apps and systems using tools like Embrace, Dynatrace, etc.