What are the responsibilities and job description for the Senior iOS Engineer position at Novo?
We are looking for an inquisitive, motivated, and agile iOS Engineer to join our banking revolution, who possesses a passion for pushing mobile technologies to the limits. You will work with our team of talented engineers to design and build the next generation of our mobile applications. Your primary focus will be the development of iOS applications and their integration with back-end services Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential. Are you ready to revolutionize the small business banking industry with us?
About the Role
- Translate designs and wireframes into high quality code.
- Design, build, and maintain high performance, reusable, and reliable Swift code.
- Ensure the best possible performance, quality, and responsiveness of the application.
- Identify and correct bottlenecks and fix bugs.
- Help maintain code quality, organisation, and automatisation.
Requirements for the Role
- 5 years of experience in iOS development & iPad applications
- Proficient with Swift and Cocoa Touch
- Understanding of Apple’s design principles and interface guidelines
- Must have knowledge of dependency managers like Cocoa-pods and Carthage
- Experience with iOS frameworks such as Core Data, Core Animation, Core Graphics, Core Audio and Core Text
- Must have knowledge of SwiftUI
- Deep understanding of design patterns/architectures like MVC, VIPER
- Comfortable in Storyboard and Playground
- Experience with offline storage, threading, and performance tuning
- Test driven mindset Should have knowledge of implementation of Unit test cases using XCTest framework-
- Deep understanding of security around data at rest and in-transit such as cert-pinning, keychain storage and payload encryption/decryption
- Experience with performance and memory tuning with tools (such as Instruments and Shark, depending on project needs)
- Demonstrated ability to work well with others in a team environment and with geographically distributed teams
- Experience working with Git and CI/CD pipelines
How We Define Success:
- Deliver features to the end user within reasonable timelines.
- Deliver features that work across a range of cases and devices and should introduce minimum breakage under unknown conditions.
- Taking care of non-functional requirements while delivering functional solutions: performance, security and unit testing.
Nice To Have
- Background working for product company
- Experience with GraphQL