Responsibilities and Duties
- Act as the senior developer for development activity, focussing on the development and prototype.
- Act as a code reviewer and make necessary upgrades to the code.
- Work with the process owner, subject matter experts and others as necessary to determine the as-is and to-be state of specific business requirements.
- Incorporate feedback from stakeholder groups and Develop.
- Build the core and support systems for digital platform and develop features.
- Maintenance of the core and support systems by constantly updating the source codes and allied repositories.
- Coordinate with external & internal partners as required to understand business requirements, plan and implement tasks required for the development.
- Designing, developing and maintaining core system features, services and engines.
- Helping define product features, drive the system architecture, and spearhead the best practices that enable a quality product.
- Working with scientists and other engineers to investigate design approaches, prototype new technology, and evaluate technical feasibility.
- Operating in an Agile/Scrum environment to deliver high quality software against aggressive schedules.
- Guide junior members of the team and assist them with design, development, test and implementation.
- Own the overall assigned features and products.
Qualifications and Skills
- In-depth experience with the iOS SDK and Swift.
- Experience building scalable applications using well-established architectures (e.g. MVVM, VIPER, Redux, etc.)
- Equally comfortable using Storyboards, XIBs, or writing UI code by hand (experience using SwiftUI a plus).
- Experience using a data persistence store, e.g. Core Data, Realm, etc.
- Experience integrating with backend APIs (REST or GraphQL) using URLSession.
- Experience writing apps that are accessible to a broad range of users.
- Experience writing comprehensive test suites comprising unit tests, snapshot tests and UI tests.
- Experience with the finer points of Xcode projects, e.g. configurations, build settings, code signing, etc.
- Experience working collaboratively, both synchronously (e.g. pair programming) and asynchronously (e.g. code reviews).