Safaricom Kenya
Job Description
Reporting to the Software Engineering Lead – Apps, the position holder will be required to develop and publish enterprise mobile applications in Android. They will collaborate with internal teams to develop functional mobile applications while working in a fast-paced environment, keeping up to date with new concepts and best practices for developing mobile applications, adopting Agile in DevOps and, team delivery.
Responsibilities
- Architect, build and maintain excellent mobile applications with clean code
- Release applications to Google Play and Huawei App stores
- Design and implement user interface components for mobile applications using from prototypes and wireframes
- Write unit, UI, integration and automated tests to ensure error-free code, performance and quality
- Integration to RESTful APIs
- Work with Coroutines to improve performance of the mobile apps
- Identify, plan and implement new mobile products, applications and protocols
- Creating efficient data queries and communicating to back-end developers on API issues
- Build reusable code and libraries for future use
- Implement clean, modern, smooth animations and transitions that provide an excellent user experience
- Work with modern tools including Confluence, Jira, Slack, GitHub etc
- Reviewing application requirements and interface designs
- Documenting application changes and developing updates
- Collecting user feedback and optimization of operational experience
- On-going app support, debug and enhancement
- Remain up to date with the technologies, concepts, best practices and news of mobile applications development
- Work closely with colleagues to constantly innovate app functionality and design
- Communicate with users to understand their needs and experiences
Qualifications
- Bachelor’s Degree in Computer Science or related field
- 3+ years of professional experience working with Android
- 4+ years of professional software development experience
- A very good understanding about mobile applications and programming languages such as Kotlin, Java, SqlLite, XML together with their mainstream IDEs such as Android Studio.
- Knowledge in Swift, React Native, Flutter, Kotlin Multiplatform and Xcode is an added advantage
- A strong understanding on Single Activity and MVVM architecture patterns and Jetpack components like Navigation
- Experience in RESTful API integrations, Version Control (Git) and DevOps
- An understanding on Security Principles with regard to mobile applications and tech platforms
- Experience in developing Android applications
- A strong desire to learn and figure out how to create market leading user-friendly mobile applications
- Quick to adopt and willingness to work/deliver in a short period
- Ability to quickly absorb technical concepts and communicate them to a non-technical audience
- Passionate about robust code design
- Knowledge of UI/UX designs and wireframes
- Ability to create and maintain continuous integration and delivery of Android applications
Technical Skills
- Knowledge of functional and object-oriented programming
- Significant experience working with Kotlin along with tools like Dagger Hilt, Ktlint, Espresso and SonarQube
- Strong knowledge of Android fundamentals such as MVVM and Clean architectures, Paging, Navigation and LiveData
- Good knowledge of Architecture using Library and Dynamic Feature modules
- Ability to write well-documented, clean Kotlin code
- Understanding of Dependency Management using Version Catalog
- Familiarity with build tools like Gradle, Dexguard and Proguard
- Understanding of secure REST APIs, Websocket Connections, offline storage, and working with third-party libraries
- A complete understanding of the full mobile app development lifecycle right from prototyping
- Knowledge of type checking, unit testing and code debugging
- Knowledge of user interface design, responsive designs, animations and accessibility support
- Well-versed in a variety of Android software and technologies such as ESLint
- Experience with Firebase products and services
- Good troubleshooting skills
Non Technical skills
- A positive mindset and continuous-learning attitude
- Ability to solve issues and contribute to libraries as and when needed
- Experience working in an agile development environment
- Strong verbal and written communication skills to communicate strategy
- A collaborative approach to build apps and solve complex problems
- Attention to detail and problem-solving skills
- Client-focused approach with a goal of creating user-centric designs
- Good interpersonal, communication, and collaboration skills
To apply for this job please visit egjd.fa.us6.oraclecloud.com.