Description
Proficiency in Apple technologies and full mastery of the Swift language are required, along with familiarity with complex topics and analytical ability to propose comprehensive and complex refactorings.
Deep knowledge of design patterns (especially VIPER) and their variations, as well as familiarity with modularization concepts, is also required.
Knowledge of Threads and SwiftUI
Knowledge of other architectural patterns (MVVM, MVP, etc.)
Knowledge of design patterns (Facade, Adapter, Factory, Singleton, Builder, Abstract Factory, etc.)
Staying up-to-date with Swift language updates and understanding how to apply them optimally within the team.
Ability to identify and implement consistent code improvements, such as:
architectural improvements
application of design patterns
development experience
user experience (UX)
Knowledge of supporting languages, such as automation languages for CI (Ruby, Python, etc.)
Understanding of the Bitrise integration workflow
Delivering presentations to internal or external teams on Apple-related topics
**Requirements:**
Senior iOS Developer
Requirements
5–8+ years of iOS development experience
Advanced proficiency in Swift and UIKit (ViewCode and AutoLayout)
In-depth knowledge of architectures such as VIPER, MVVM, and modularization
Experience developing for iOS and tvOS
Experience with REST and GraphQL APIs
Knowledge of data persistence
Solid experience with unit, manual, and instrumental testing
Knowledge of snapshot testing
Dependency management using Cocoapods and SPM
Knowledge of XcodeGen
Version control using Git and GitFlow
Assertive communication and experience collaborating with QA, UX, Design, and stakeholders
Experience mentoring and developing junior professionals
Hard Skills
Swift and Architecture
Full mastery of the Apple ecosystem and the Swift language is expected, including analytical capability to perform complex refactorings and drive architectural evolution of the project.
**Also required:**
In-depth knowledge of VIPER and its variations
Knowledge of MVVM, MVP, and VIP
Familiarity with modularization
**Application of Design Patterns:** Factory
Singleton
Adapter
Builder
Facade
Abstract Factory
Differentiators
Knowledge of Threads and SwiftUI
Continuous updates on Apple ecosystem news
Ability to propose continuous improvements in architecture, patterns, and user experience
UIKit / SwiftUI
Advanced proficiency in UIKit
**Interface construction using:** Storyboards
XIBs
AutoLayout
ViewCode
SwiftUI
Development of scalable interfaces
Experience with Design Systems
Optimization of view hierarchies and performance
APIs and Networking
Consumption and maintenance of REST and GraphQL APIs
**Knowledge of:** Headers
Interceptors
Responses
Fragments
Unions
JSON/XML parsing
**Asynchronous programming:** GCD
DispatchQueue
OperationQueue
Async/Await
Continuous Integration
Experience with CI/CD
Knowledge of Bitrise
Creation and maintenance of pipelines
Use of feature flags
Incremental refactoring of legacy systems
Tools
Advanced proficiency in Xcode
**Knowledge of:** SPM
Cocoapods
XcodeGen
Instruments
Firebase Crashlytics
Firebase Analytics
**Advanced Git and GitFlow:** commit editing
cherry-pick
rebase
branch switching
Clean Code and Quality
Strong focus on Clean Code
Rapid identification of code smells
Experience with large-scale refactorings
Writing efficient unit tests
Snapshot testing
Continuous quality and testing culture
Technical and constructive code reviews
Performance and Memory
Knowledge of memory optimization
**Mastery of ARC:** lazy properties
computed properties
weak / strong / unowned references
Use of Instruments for performance analysis
Soft Skills
Communication and Collaboration
Assertive communication
Active listening
Good interpersonal relationships
Ease of cross-team collaboration
Mentorship
Development of junior professionals
Knowledge sharing
Pair Programming
Support in technical onboarding
Ownership and Proactivity
Sense of ownership over product and deliverables
Ability to identify technical and process improvements
Continuous pursuit of technical evolution and quality
Product Vision
Understanding of the business impact of features
Ability to propose improvements to product and user experience
Differentiators
Experience in technical leadership
Knowledge of Ruby or Python for automation
Experience delivering internal and external technical presentations
Experience with large-scale Design Systems
Advanced knowledge of monitoring and observability
Daily Responsibilities
Participate in daily stand-ups, refinement sessions, and planning meetings
Develop features for iOS and tvOS
Fix bugs and evolve the project’s architecture
Work closely with QA, UX, Design, and stakeholders
Perform code reviews
Execute unit and manual tests
Create technical documentation
Perform releases and monitor application metrics
Continuously study new technologies and best practices