ENVIRONMENT:
A Health Tech Solutions Company based in Pretoria is actively seeking an iOS Developer to Develop and maintain their innovative hearing health platforms on the iOS platform, ensuring code is generated that is in accordance with specifications, and which is neat, accurate and scalable. Work will mainly focus on maintaining and upgrading their hearing aid solutions platform (Lexie Hearing), as well as providing guidance from the best iOS practice perspective for products in the rest of the company. Work might also include mentoring other iOS developers.
DUTIES:
Analysis and Planning 20%
- Collaborate in the application lifecycle (planning, design, development, deployment, maintenance) collaborating with stakeholders for requirements.
- Continuously research and evaluate new technologies to optimize development efficiency.
- Plan and design well-structured, reusable application architecture.
- Implement and develop according to best practices to ensure high-quality, maintainable systems.
- Participate in project planning by providing estimates, contributing to requirement documentation, and assisting with work breakdown structures.
- Participate in user story creation, estimation, and work plan development, ensuring clear communication of requirements.
- Effectively prioritise, and manage dependencies to ensure timely completion, and switch contexts effectively when the need arises.
- Collaborate effectively with development teams to solve problems, make recommendations, and discuss best practices.
- Proactively identify and mitigate code related risks, adapting as needed.
- Track tasks and progress within JIRA.
Development and Testing 50%
- Develop software adhering to project plans, deadlines, and coding standards.
- Develop and maintain high-quality, maintainable systems using efficient and reusable code according to best practices.
- Use version control effectively and according to best practices, as well as backing up other work according to company standards.
- Prepare and maintain testing environments, including examples and instructions.
- Conduct initial testing and assist in developing testing plans.
- Implement and maintain automated tests and component libraries according to team practices.
- Analyse systems to identify root causes of issues within a system, develop workarounds, and implement permanent fixes.
- Deliver thoroughly tested and performance benchmarked work that meets functional requirements before deployment.
- Deploy changes to the production environment following established procedures.
- Implement and maintain DevOps processes, including CI/CD pipelines and Infrastructure as Code as applicable to the team.
- Maintain up to date and accurate code and system level documentation.
Reporting and Communication 10%
- Provide clear, timely, and efficient updates on project status, progress, risks, and potential problems to the team lead.
- Prepare reports, manuals, and other documentation related to software status, operation, and maintenance.
- Maintain accurate system and product change logs, release notes and notifications to other teams, according to company standards and team practices.
- Offer insights and feedback on queries regarding relevant projects.
- Collaborate effectively with team members and stakeholders, by being available on appropriate communication channels with timeous, well-articulated responses.
Contribution to the Team 15%
- Take ownership of projects.
- Actively participate in peer code reviews, discuss best practices, and contribute innovative ideas to projects.
- Collaborate with the team to solve problems and ensure successful project delivery - on time and as spec'd.
- Contribute to the development of fellow team members through knowledge sharing and promoting best practices.
Quality Management and Compliance 5%
- Deliver high-quality products that meet specifications, user requirements, best practices, deadlines, and regulatory compliance (e.g., FDA, CE, ISO).
- Apply knowledge of the Quality Management System guidelines and its relevant processes to ensure quality and SOC2 compliance in medical device and other software.
- Ensure all testing adheres to defined specifications.
- Contribute to safeguarding information and data in accordance with company policies.
- Keep all supporting documents up to date.
REQUIREMENTS:
Minimum education (essential):
- National Senior Certificate
Minimum education (desirable):
- Tertiary education diploma/degree relevant to software development.
- 3 year degree in computer science or equivalent.
Minimum applicable experience (years):
- 3 - 5 years as an iOS Developer
Required nature of experience:
- Experience in implementing and delivering native iOS applications of 1 or more projects.
Skills and Knowledge (essential):
- Programming Languages and Concepts
- Swift (Advanced)
- Concurrency - Grand Central Dispatch (GCD), Operation Queues, Tasks
- Memory Management
- iOS best practices
- iOS Frameworks and SDKs
- Animation - Core Animation/ SwiftUI animation
- Lottie
- Combine
- Core Data
- RxSwift
- Core Bluetooth/ RxBluetoothKit
- Development Tools
- Command Line Tools
- Continuous Integration/ Continuous Deployment CI/ CD (Xcode Cloud, GitHub Actions)
- Profiling
- Version Control
- Complex Git workflows (rebasing, cherry-picking, git-bisect)
- App Architecture and Design Patterns
- Dependency Injection
- Networking
- SSL
- User Interface Design
- Custom Transitions and Animations
- Accessibility
- Localization and Internationalization
- Data Persistence
- Core Data models and migrations (Intermediate)
- Testing
- Unit testing - mocking, stubbing (Advanced)
- Performance Testing
- App life cycle
- Background Execution
- Additional Skills
- Human Interface Guidelines
- App Review Guidelines