Project descriptionJoin our Development Center in Bucharest, and become a member of our open-minded, progressive and professional team. In this role you will be working on projects for one our world famous clients. You will have a chance to grow your technical and soft skills, and build a thorough expertise of the industry of our client. On top of attractive salary and benefits package, Luxoft will invest into your professional training, and allow you to grow your professional career.ResponsibilitiesThe Mobile Developer:designs and develops based on REST APIs, customer-oriented mobile apps for the Bank in an Agile environment.Plan and provide appropriate software and documentationCoaching / Guiding less experienced developersExposure to technical design and development of customer-oriented mobile application systems on various platformsExperience with 4.5-Star Apps with fast-paced release cyclesDriver of quality indicators, promote the integration of non-functional testing (security, performance, UX) into continuous integration cycleCreate integration environment, testing and deployment strategies for the Mobile Development TeamAgile working environment: Work with the Product Owner, Scrum Masters, Dev Team members, UX designers, security specialists and other groups to identify technical and functional needsBe able to work in a global environment with mixed teams and mixed cultures at different time zonesExperience with best industry standardsapplying coding guidelinesSkillsMust haveMinimum 5 years experience hands on iOS developmentDetailed knowledge of SwiftGood knowledge of architecture design for mobile applications (e.g. MVC, MVVM../ SOLID principles)Able in designing systems that span multiple technologies/platformsGood In Data StructuresShould be able to suggest which collection to be used based on the requirements. Knows how to use SDK collection facilities (Enumeration, Filtering, Mapping, Reducing, Sorting)Familiar with GCD, Operation Queue, ThreadKnows what Generics are. Understands how and when they can are 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.Base Code obfuscation; Able to treat obfuscation exceptionsUse caching mechanisms. Able to handle platform limitations.Good knowledge working with persistency layers and corresponding persistency frameworks + tools. Shared Preferences, writing to files, assets , SQLite;Knowledge of design patterns: Adapter, Singleton, Facade, Factory, Observer, Builder, Decorator, MVP, Reactive (represents a plus), Repository, Interactor/ExecutorAbility 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, Monitoring Tools, Multiple Process Debugging, Backward compatibility, CompilerKnows how to write unit tests and UI tests for the corresponding platform. Knows/Experienced with TDD.Ability to work with a continuous deployment environment