Overview
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.
Technical Requirements
- 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
- 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