Skip to content

Mobile Android/IOS Developer (Intermediate)

  • Hybrid
    • Johannesburg, Gauteng, South Africa
  • Delivery

12 month contract
Hybrid 3 days in Office

Job description

Responsible for the development of high-quality mobile solutions. This role requires participation in the development and maintenance activities of software and other digital applications or services. The incumbent will be expected to develop user-centered software and contribute to developing technical specifications. This role requires fundamentals in engineering practices, an analytical and data-driven approach to problem solving, while following DevOps, SRE and Cloud Based practices.

Job requirements

Specific Technical Requirements/Languages/Skills

  • 5+ years of experience in IOS and Android mobile application development

  • Knowledge of, and experience in mobile frameworks and technologies such as:

  • Swift 5 on IOS for Native App Development

  • Xcode/AppCode

  • Kotlin

  • Containerisation technologies e.g., Kubernetes, Docker (Beneficial)

  • CI/CD Tools e.g., Jenkins, AWS Code Commit

  • AWS (preferred) or another cloud provider such as Microsoft Azure or Google Cloud Platform

  • IaC technologies e.g., Terraform/Cloudformation

  • Collaboration tool e.g., Confluence, Jira, Microsoft Teams, Slack

  • Familiarity with architecture styles such as Microservice and Serverless architectures

Responsibilities

  • Follow Agile methodologies (SCRUM / Kanban)

  • Work in a DevOps culture

  • Work closely with multi-skilled and cross-functional teams e.g. architects, developers, UX designers, business

  • Participates in team design, scoping and prioritisation discussions

  • Document & Design solutions at an Application Level with guidance from seniors

  • Participates in team design, scoping and prioritisation discussions

  • Contributes to and develop technical specifications and software application architecture and designs

  • Build cloud based functional mobile applications at an enterprise level

  • Build Front-end and/or back-end solutions on the mobile digital channel/platform

  • Implement complex Business Features and solutions with minimal guidance

  • Generate, contribute and drive technical documentation according to guidelines

  • Understand, communicate and/or translate complex procedures

  • Writes secure, stable, testable, maintainable code with minimal defects.

  • Assumes responsibility for the state of the code you both inherit and produce.

  • Responsible for getting designs and code reviewed,

  • Writes unit tests and tests code thoroughly

  • Classifies, stores, and handles data in accordance with policies

  • Clearly documents software to ensure that future generations of developers understand the intention behind the features and components built.

  • Knowledgeable of and implements coding design patterns

  • Review and refactor code according to coding standards

  • Refactor complex code to improve maintainability

  • Provide after-hours support of applications (you build it, you run it)

  • Understands the maintenance characteristics, runtime properties, and dependencies of the team’s software, including hardware platform, operating system and build dependencies.  

  • In the event of a problem, troubleshoots, researches the root cause of problems, and thoroughly resolve defects. 

  • Continuously develop skills

  • Seek to learn the business context and technologies behind teams' software.

  • Work effectively with customers and/or internal partners to understand business impacts and identify any opportunities/problems arising from technical decisions

  • Understand and contribute to the technical roadmap and vision of the Digital & Data team

  • Seek to learn the business context and technologies behind the team’s software.

  • Work effectively with customers and/or internal partners to understand business impacts and identify any opportunities/problems arising from technical decisions

  • Research and share programming/technology-related advances to team(s)

  • Build and test software prototypes

  • Provide higher-level technical and programming support to fellow developers/engineers

  • Mentor and coach junior developers and trainees

  • Research and recommend programming-related advances to team(s)

  • Create and test software prototypes

or