- 1 million downloads of the mobile app
- About 40% of all accesses to Online Banking done via mobile devices
- 4 star reviews on average in all stores
- Plan and provide appropriate software and documentation
- Coaching / Guiding less experienced developers
- Exposure to technical design and development of customer-oriented mobile application systems on various platforms
- Experience with 4.5-Star Apps with fast-paced release cycles
- Driver of quality indicators, promote the integration of non-functional testing (security, performance, UX) into continuous integration cycle
- Create integration environment, testing and deployment strategies for the Mobile Development Team
- Agile working environment: Work with the Product Owner, Scrum Masters, Dev Team members, UX designers, security specialists and other groups to identify technical and functional needs
- Be able to work in a global environment with mixed teams and mixed cultures at different time zones
- Experience with best industry standards - applying coding guidelines
Must- Minimum 5 years experience hands on on iOS development
- Proficient in decomposing problem statement into multiple methods/functions. Should be able focus on building reusable code.
- Write code in modular way, able to distinguish between structured programming and OOP.
Relevant experience in iOS
- Ability in designing systems that span multiple technologies/platforms.
- Good In Data Structures - Following requirements, suggest which collection is to be used. Knows about SDK collection facilities (Enumeration, Filtering, Mapping, Reducing, Sorting)
- Advanced knowledge in threading/Grand Central Dispatch(knows how to separate heavy load on background thread; thread synchronization, dispatch groups, knowledge in using NSOperationQueues).
- Knows what Generics are. Understands how and when they can be used. Use generics for reducing the amount of written code and achieve better modularization. Increase Runtime Safety by using generics.
- Knowledge of REST, networking and caching; must be able to know which frameworks can be used at client side. Keep updated with new networking standards (HTTP2). Capable in mocking web interfaces.
- Knowing about security mechanisms (SSL pinning, Data Integrity, HMAC, man in the middle etc). Proficient with KeyStores/Keychains. Knowledge about encryption.
- Use caching mechanisms. Ability to handle platform limitations.
- Good knowledge working with persistency layers and corresponding persistency frameworks + tools.
- User Defaults, plists, writing to files; Keychain; Ability to use NSCoding/Codable protocol to serialize objects. Core Data/SQLite knowledge.
- Knowledge of design patterns: Delegate, Singleton, Facade, Factory, Observer, Decorator, Adapter, Chain of Responsibility and Command. MVVM, Clean Swift, VIPER.
- Ability to build apps with a clean architecture: Knowledge about SOLID Principles.
- Read and write basic shell scripts.
- Very Good knowledge of native SDK: Proficient with XCode, Instruments and Apple developing process (Apple Dev Portal), Basic knowledge of code signing.
- Knows how to write unit tests and UI tests for the corresponding platform. Knows/Experienced with TDD.
- Ability to work with a continuous deployment environment. Takes advantage of continuous deployment in his/her daily work.
- Keep up to date with latest language features. Very good knowledge of SWIFT. Is able to take advantage of SWIFT capabilities in order to write both functional and object oriented code.
Nice to haveUpper intermediate EN skills
- English: Upper-intermediate