Description & Requirements
· 6+ years experience in Mobile and iOS developing.
· Proficient in Swift.
· Strong OOP knowledge.
· Can clearly articulate the advantages and disadvantages of POP vs OOP.
· Has experience with Objective-C.
· Excellent in applying SOLID principles and how to adopt them as part of the development activities.
· Strong knowledge in clean architecture and code modularity.
· Excellent knowledge in code architecture patterns, such as MVC, MVVM, MVP, VIPER.
· Strong knowledge of common iOS design patterns (for example, delegate, observer, factory), knows what an anti-pattern is.
· Can explain the difference between declarative and imperative programming and is comfortable in coding in both paradigms.
· Proficient functional programming and how to apply high order functions.
· Can clearly articulate the differences between dependency managers and what is the best one to use based on clients needs.
· Experience with Push Notifications.
· Strong knowledge in Generics and how to apply them.
· Can set up a continuous integration environment.
· Excellent knowledge in unit and UI tests.
· Knows how to apply Apple's HIG and design principles.
· Excellent knowledge in git.
· Good knowledge in SwiftUI and Combine.
· Strong knowledge in CoreData and designing offline modes for the mobile apps.
· Experience with Realm.
· Knows the full life cycle of an iOS application, from early steps to publishing to App Store.
· Strong overall knowledge of iOS security.
· Good knowledge in multithreading, GCD, OperationQueues, Swift 5.5 Concurrency Model (async await, actors, Sendable protocol, tasks).
· Keeps himself up-to-date with latest trends in iOS programming.
· Excellent communication skills.
· Strong knowledge in Agile methodology and good knowledge in at least one framework, such as Scrum or Kanban.
· Good mentor and pro-active in teaching our junior colleagues.
· Sets the mobile principles for the projects he is part of.
· Empowers others and actively contributes to their development plan by being their coach.
· Be part of the development stage of fully-fledged apps / features.
· Develop features with high quality standards for apps visited by millions of customers.
· Very pro-active in learning new stuff and keeping up-to-date with latest trends.
· Support the entire application lifecycle: concept, design, test, release and support.
· Improve agile delivery processes, using collaboration tooling such as JIRA.
· Coach our colleagues that are less experienced in iOS programming.
· Enforces unit test coverage, contributes to setting up quality and security checks, performs, or contributes to audits.
· Define architecture guidelines, mobile principles, give recommendations, advise clients and various stakeholders of adopting solutions.
· Creates technical designs and works on strategic solutions/features that will be determine the direction of the project
· Technical leading teams.
· Fast-paced working environment within geographically distributed teams.
· Greenfield projects! Opportunity to contribute to high volume web-facing containerized applications.
· Manage, provision and version cloud environments leveraging Infrastructure as Code (IaC).
· Exposure to wide variety of cutting-edge technologies and frameworks.
· Chance to get involved and drive prototype projects (Mobile apps, IoT stuff etc.) as part of the Deloitte Digital Developers community.
· Trainings! We encourage you to attend as many as possible and conduct some to help your colleagues grow while developing your soft skills.