Calix provides the cloud, software platforms, systems and services required for communications service providers to simplify their businesses, excite their subscribers and grow their value.
Key Responsibilities:
- Architect and design complex iOS applications, ensuring modularity, scalability, and maintainability.
- Lead the development team by providing technical guidance, mentorship, and code reviews.
- Take ownership of project delivery timelines, technical design decisions, and complex problem-solving.
- Collaborate closely with senior management and stakeholders to define project goals, timelines, and deliverables.
- Implement advanced design patterns such as VIPER, Coordinator, or Clean Architecture based on project requirements.
- Design, develop, and maintain iOS applications using Swift and SwiftUI, focusing on performance, scalability, and user experience.
- Implement and maintain a modular architecture to ensure code reusability and maintainability.
- Utilize Swift Package Manager (SPM) for package management, modular architecture, and dependency management.
- Create responsive, adaptive, and user-friendly interfaces using SwiftUI and UIKit when necessary.
- Develop and maintain unit tests and UI tests using frameworks like XCTest, and mock data using mocking frameworks.
- Implement dependency injection using frameworks like Swinject or Resolver.
- Ensure compliance with coding standards and best practices through code reviews and CI/CD pipelines.
- Collaborate with cross-functional teams, including UI/UX designers, backend developers, and product managers, to ship new features and applications.
- Optimize application performance by handling memory management, multithreading, and concurrency efficiently.
- Write and maintain technical documentation, covering architecture design, API integration, testing strategies, and release notes.
- Stay up-to-date with the latest industry trends, iOS platform advancements, and development best practices.
Required Skills and Experience:
- Strong proficiency in Swift and SwiftUI with experience in developing dynamic, adaptive UIs.
- Hands-on experience with UIKit, CoreData, and other iOS frameworks.
- Experience in designing and implementing modular architectures with reusable frameworks for iOS applications.
- Proficiency in protocol-oriented programming and understanding of object-oriented programming principles.
- Experience with Swift Package Manager (SPM), CocoaPods, or Carthage for dependency management.
- Experience with unit testing frameworks like XCTest and using mocking frameworks for comprehensive test coverage.
- Knowledge of dependency injection frameworks such as Swinject or Resolver.
- Familiarity with CI/CD pipelines, version control (Git), and project management tools (JIRA, etc.).
- Strong understanding of Apple Human Interface Guidelines (HIG) and App Store submission processes.
- Extensive experience in iOS application architecture, design, and development using Swift and SwiftUI.
- Proven track record in leading teams, providing mentorship, and architecting high-quality iOS applications.
- Strong understanding of protocol-oriented programming and modular architecture for large-scale applications.
- Expertise in using Swift Package Manager (SPM) to build, integrate, and maintain modular app structures.
- Experience in networking with RESTful APIs, WebSockets, and using libraries like Alamofire.
- Hands-on experience with advanced design patterns (VIPER, Coordinator, Clean Architecture) and following SOLID principles.
- Proven experience in optimizing application performance and memory management.
- Familiarity with Objective-C Bridging for maintaining legacy codebases.
- Strong knowledge of App Security, Data Protection, and performance tuning.
Preferred Skills:
- Experience with dependency injection frameworks like Swinject, Resolver, or custom DI patterns to enhance code modularity and testing.
- Proficiency in protocol-oriented programming, focusing on extending and reusing types to create modular and flexible codebases.
- Experience in cross-platform frameworks like React Native or Flutter to support multi-platform development or create hybrid apps.
- Proficiency in building user interfaces using the latest iOS frameworks, including SwiftUI for declarative UI programming.
- Strong understanding and experience with Combine for reactive programming, handling asynchronous operations, and state management.
- Hands-on experience with new concurrency models in Swift using async/await to build safe, readable, and maintainable asynchronous code.
- Knowledge of App Modularization and creating reusable components using SPM or other package management systems for scalable and maintainable applications.