Job Summary
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.
- Provide input into the requirements documentation and assist in work breakdown to draft a proper timeline to plan the schedule and what is required.
- 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.
- Liaise effectively with other team members and backend engineers to ensure timeous completion of integration and the coming together of mobile applications and the required back end system.
- 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