Work Location: 180 Garsfontein Road, Ashlea Gardens, Pretoria
Job purpose: Develop and maintain our innovative hearing health platforms on the Android platform, ensuring code is generated that is to specification, neat, accurate and scalable. Work will mainly focus on maintaining and upgrading our hearing aid solutions platform (Lexie Hearing), as well as providing guidance from an Android best practice perspective for products in the rest of the company. Work might also include mentoring other Android developers.
Requirements Minimum education (essential): National Senior Certificate
Minimum education (desirable): Diploma and/or degree in IT / Engineering / Programming
Minimum applicable experience (years):5 years as an Android Developer
Required nature of experience: Hands on software developer having been responsible for the development and maintenance of 1 or more projects.
Skills and Knowledge (essential):
Experience in native Android (Kotlin and Java) development specifically.
Reactive programming
Strong knowledge of Android development and its supporting systems
Proficient in Kotlin (Minimum 2 years experience)
Good development practices utilising modern design patterns using software architectures: MVP, MVVM, Clean Architecture
A good understanding of storage mechanisms, threading, lifecycles
Knowledge of common 3rd party frameworks/libraries available and integration experience
Strong UI development experience and developing for dynamic screen support
Experience with RESTful API integration
Well versed in Git
Solid understanding of the full mobile development life cycle within an Agile environment
Atlassian JIRA software experience is beneficial
Good understanding of Bluetooth on Android is beneficial
Good understanding of RxAndroid, RxJava and RxKotlin is beneficial
Key Performance Areas, Weights And Objectives Application planning and development
Be involved in the planning, design and development of assigned applications.
Research, consult analyse and evaluate application needs and designs.
Write and maintain efficient, reusable and reliable code to meet system requirements, system designs and technical specifications in accordance with quality accredited standards.
Work from wireframes and/or designs to develop high quality applications.
Following best practice design and development methodologies in sustaining a high quality, clean, auditable and manageable applications.
Ensure the best possible performance, quality, and responsiveness of applications.
Identify issues, bugs, and bottlenecks and devise solutions to these problems.
Identifying technology limitations and deficiencies in applications and associated processes, procedures and methods.
Testing, debugging, diagnosing and correcting errors and faults in an applications within established testing protocols, guidelines and quality standards to ensure programs and applications perform to specification.
Project planning and capacity management
Estimate accurate completion timelines for projects for use by the project lead in capacity planning.
Manage time and tasks effectively in order to complete tasks in the correct order of priority.
Manage time and tasks effectively in order to complete tasks on time.
Track tasks and timing on JIRA.
Contribution to team
Participate in peer-reviews of solution designs and related code.
Communicate and collaborate with current team to solve problems and discuss best programming practices.
Contribute to team development efforts towards successful project delivery.
Contribute innovative ideas to project and application plans and roll outs.
Communicate effectively with team lead.
Communicate effectively with team members and internal stakeholders, using communications channels appropriately.
Take personal ownership for projects and products
Quality Management and Compliance
Ensure continued improvement and upkeep on existing applications.
Ensure compliance with QMS frameworks for CE certification.
Ensure products are developed accurately (i.e. according to specifications and end user requirements).
Ensure products are developed efficiently (i.e. according to best practice and on time).
Ensure testing is completed according to specification.
Manage release schedule and release notes for Android applications.
This job description is not a definitive or exhaustive list of responsibilities and is subject to change depending on changing business requirements. Employees will be consulted on any changes. Employee’s performance will be reviewed based on the agreed upon objectives.