
Senior Software Engineer (Android)
- Pakistan
- Permanent
- Full-time
- Delivering across the entire app life cycle – concept, design, build, deploy, test, release to the app store and support
- Working closely with all team members to understand full-stack functionality and architecture
- Gathering requirements around functionality and translate those requirements into elegant functional solutions
- Contributing ideas (technological and product) to enhance the overall app experience
- Optimizing performance for the apps
- Staying abreast with technological updates and implementing technology improvements by utilizing blogs and forums
- Bachelors/Masters in Computer Sciences
- 6+ years of experience preferably in android application development
- Excellent understanding of Android Development SDK, basic components (Activities, Fragments, Services, Broadcast Receivers) and their life-cycles
- Must be proficient in OOP, Data Structures, Algorithms, Complexity of Algorithms, Java and Kotlin
- A detailed knowledge of modern Android development, including Kotlin, Android Jetpack and Compose.
- Excellent problem-solving skills
- Knowledge of Kotlin Multiplatform is a big plus.
- Good understanding of lambda expressions and coroutines
- Strong knowledge of third-party libraries, primarily RxJava, Retrofit, okHttp, GSON, Glide, Dagger 2, Android Injection, Hilt, Crashlytics and Firebase
- A thorough understanding of developing Android applications for different screen sizes and resolutions
- Experience in developing Custom Widgets and reusable components
- Deep understanding of MVVM architecture with the latest Google recommended API’s
- Skills to understand MVP architecture code and ability to easily transform it into MVVM
- Familiarity with VIPER architecture pattern
- Enthusiastic enough to understand the usage of Remote Configuration of Firebase
- Excellent knowledge of Unit Test with Mockito and PowerMockito and testing frameworks, including Robolectric and Espresso
- Must have built at least two Android applications and published on PlayStore
- Good understanding of interactive application development paradigm under Android, memory management, file I/O, network programming, concurrency and multithreading
- Good understanding of design patterns (GOF)
- A sound understanding of SOLID principles
- Familiarity with RESTful APIs to connect Android applications to back-end services
- Good understanding of the full mobile development life cycle. Working knowledge of the general mobile landscape, architectures, trends, and emerging technologies
- Familiarity with cloud message APIs and push notifications
- Good understanding of code versioning tools, such as Git
- Basic knowledge of CICD lifecycle
- Understanding of Google’s Android design principles and interface guidelines
- Ability to understand business requirements and translate them into technical requirements
- Continuously discover, evaluate, and implement new technologies to maximize development efficiency
- Strong and innovative approach to problem-solving and finding solutions. Flexible and proactive/self-motivated working style with strong personal ownership of problem resolution
- Must possess a can-do attitude with strong Algorithmic skills
- Passionate and willing to deliver presentations on new technical designs and frameworks introduced by Google or any open source community
- Good communication skills (written and verbal, formal and informal)
- Accountable and takes ownership
- Team Player