Job Title: iOS Swift Lead Developer
Location: Philadelphia, PA
Job Description
We are looking for an experienced, hands-on iOS Lead Developer with strong expertise in Swift, SwiftUI, and modern iOS application development. The ideal candidate should have experience building and maintaining large-scale production iOS applications while leading technical design, development, and code quality.
Key Responsibilities
Design, develop, and maintain scalable iOS applications using Swift and SwiftUI.
Lead technical implementation and provide hands-on coding expertise.
Modernize existing UIKit applications and migrate components to SwiftUI.
Implement asynchronous programming using Swift Concurrency.
Design and maintain application architecture using MVVM and Clean Architecture.
Integrate REST APIs and manage networking, error handling, and retry mechanisms.
Review code, troubleshoot issues, and guide other developers.
Identify and resolve memory management, threading, and application lifecycle issues.
Write unit tests and ensure application quality and performance.
Required Technical Skills
Strong hands-on experience with Swift and modern iOS development.
Expertise in SwiftUI and state management.
Strong knowledge of Swift Concurrency, including:
Async/Await
Task and TaskGroup
Task cancellation
Structured Concurrency
Actors and thread safety
MainActor
Good experience with UIKit and UIKit-to-SwiftUI migration.
Strong understanding of MVVM, Clean Architecture, and Dependency Injection.
Experience with URLSession, REST APIs, and networking.
Knowledge of Codable and JSON modeling.
Strong understanding of ARC, memory management, and retain cycles.
Experience with unit testing and debugging.
Experience working on large-scale production iOS applications.
Preferred Skills
GraphQL experience.
Experience with Combine.
Experience modernizing legacy iOS applications.
Experience handling concurrent API calls and asynchronous UI updates.
Important Candidate Expectations
Must be actively involved in Swift coding.
Should have experience reviewing code and mentoring developers.
Must be capable of troubleshooting complex technical issues.
Should have strong knowledge of concurrency, threading, memory management, and application lifecycle.
Must be able to design and implement technical solutions independently.
Note: We are looking for a hands-on technical lead, not someone whose experience is primarily in project coordination or management.