Intermediate iOS Developer
Role:
- Work and collaborate with product owners and Agile teams to understand, design, develop, and implement new features using engineering best practices, design guidelines, and principles.
- Convert designs from PSD designs/Invision Prototypes into mobile UI.
- Work on fixing bugs, analyse and optimise code for efficiency and improving application performance.
- Maintain existing iOS apps, upgrade to new versions of iOS and ensure backwards compatibility.
- Perform code reviews.
- Identify and correct bottlenecks and fix bugs.
- Ensure the performance, quality, and responsiveness of applications.
- Provide detailed estimates of work and ensure timely delivery of features.
- Produce and ensure delivery of quality, readable, and well-tested code.
- Unit-test code for robustness, including edge cases, usability, general reliability.
- Help architect and develop native iOS applications in Swift.
- Expertise in designing testable software and building large scale, complex applications.
- Continuously discover, evaluate, and implement new technologies to maximise development efficiency.
- Provide technical guidance to junior members of them team.
Requirements & Skills:
- 3-5 years experience in iOS Development.
- Proficient in Swift, with a good knowledge of its ecosystems.
- Solid understanding of object-oriented programming.
- Familiarity with SOLID principles.
- Deep understanding of Swift design patterns (especially MVVM).
- Knowledge of multi-threaded, asynchronous code.
- Ability to write clean, well-factored UI code.
- Have a strong focus on building reusable code and components.
- Solid understanding of Auto-layout in Xib files, Visual Format Language and using Layout Anchors.
- Familiarity with RESTful APIs to connect iOS applications to back-end services.
- Familiarity with various dependency management tools (Carthage, Cocoapods).
- Understanding of Apple’s design principles and interface guidelines.
- Proficient understanding of Git.
- Passionate about writing clean, well organized, and production-ready code.
- Working knowledge of the general mobile landscape, architectures, trends and emerging technologies.
- Attention to detail regarding UI/UX to ensure the apps adhere as close as possible to the design.
- Excellent verbal and written communication and interpersonal communication skills.
- A passion for technology and the ability to learn new concepts quickly.
- Experience in writing Unit/Functional/End-to-End tests.
- Experience in the full life cycle of an app, from the design stage to release and support.
Nice to Have:
- Experience in Objective-C.
- Experience designing and building Cocoa Frameworks and Static Libraries.
- Experience building mobile banking and payment apps.
- Experience and strong understanding in mobile authentication, security and data encryption techniques.
- Experience in setting up iOS build automation for continuous delivery (Jenkins, Fastlane).
- Experience in setting up and maintaining all aspects of the Apple Developer account and iTunesConnect.
- Experience in deploying Ad-hoc, In-house, Beta (Firebase/Testflight) and store releases.
- Experience in supporting non-native iOS applications. e.g. Xamarin, Unity, React Native etc.
- Desire and ability to expand expertise into additional mobile languages.
WHAT WE HAVE TO OFFER:
- Remote friendly
- A collaborative, supportive work environment where you truly are encouraged to make things better.
- Free Lunch and as much good coffee as you can stomach in a work day.
- Super fancy offices with an amazing culture that few would have ever experienced.
- The opportunity to work with some of the greatest minds in the development field.