Designs high-performance algorithms for iOS applications considering mobile device constraints. Analyzes algorithm complexity for sorting, searching, and data processing in the Swift context. Optimizes critical execution paths using Instruments profiling to identify algorithmic logic bottlenecks.
Roles · iOS Developer · Lead
What a Lead } should know
35 core skills, 52 in total. Expectations per skill, and what changes at the next level.
This page lists what a Lead } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Frontend Development, Mobile Development.
Core skills for a Lead
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 8
Architects asynchronous iOS application architecture using Swift Concurrency: async/await, TaskGroup, AsyncSequence. Manages structured concurrency to prevent task leaks, configures priorities via TaskPriority. Integrates Combine publishers with async/await, ensuring smooth paradigm transitions.
Implements code quality standards in iOS projects: SwiftLint rules, SwiftFormat configurations, and code review checklists. Configures static analysis via Xcode Analyzer and third-party tools. Defines Swift code quality metrics — cyclomatic complexity, test coverage, Swift API Design Guidelines compliance.
Selects optimal data structures for iOS applications considering mobile device memory consumption. Applies Swift-specific collections (Array, Set, Dictionary) with understanding of value/reference semantics. Designs caching structures with NSCache and custom thread-safe collections for multithreaded processing.
Applies design patterns in the iOS development context: Coordinator for navigation, Repository for data access, Factory for UI component creation. Adapts classic GoF patterns for Swift specifics — protocol-oriented programming, value types, and property wrappers for dependency injection.
Manages memory in iOS applications through deep understanding of ARC: retain cycles, weak/unowned references, capture lists in closures. Profiles memory leaks through Xcode Memory Graph Debugger and Instruments Leaks. Optimizes memory consumption when working with images, Core Data, and large data collections.
Manages multithreading in iOS applications through Swift actors and Sendable protocol for eliminating data races. Applies MainActor for UI updates, creates custom actors for state isolation. Optimizes DispatchQueue and OperationQueue usage for legacy code, profiles concurrent access through Thread Sanitizer in Xcode.
Applies SOLID principles in iOS development with emphasis on Swift's protocol-oriented approach. Designs UIKit class hierarchies and SwiftUI protocols favoring composition over inheritance. Uses generics, associated types, and opaque return types to create flexible abstractions while maintaining type safety.
Frontend Development · 1
Architects the data loading system for the iOS application: URLSession abstractions, authentication interceptors, centralized error handling. Implements GraphQL via Apollo iOS or custom client, configures WebSocket for real-time data. Defines strategies for local cache synchronization with the server.
Mobile Development · 8
Defines ASO standards for iOS product portfolio: establishes App Store optimization workflows, coordinates ASO with Apple Search Ads and marketing teams, implements multi-locale keyword strategies. Conducts store presence audits and defines optimization roadmaps.
Architects reactive iOS application architecture based on Combine: Publisher chains for data transformation, subscription management via AnyCancellable. Creates custom Publishers and Subscribers for business logic, integrates Combine with URLSession, NotificationCenter, and Core Data. Optimizes use of throttle, debounce, and combineLatest operators.
Designs Core Data data model for iOS applications: entity schema, migrations, fetch request optimization. Configures NSFetchedResultsController for efficient data display, implements background contexts for heavy operations. Implements CloudKit synchronization via NSPersistentCloudKitContainer for multi-device support.
Architects scalable CI/CD for the iOS team: parallel module builds, SPM dependency and derived data caching. Implements automated quality checks: SwiftLint, test coverage, binary size, and performance regression tests. Configures multi-stage deployment: alpha, beta, production with automatic release notes from commits.
Architects iOS application performance monitoring: metric collection via MetricKit, crash reporting via Firebase Crashlytics, and hang rate analysis. Optimizes complex UI scenarios: infinite scrolling, heavy rendering, and background operations. Implements performance budgets for startup time, memory consumption, and binary size.
Architects iOS application security: multi-layer data protection via Data Protection API, Secure Enclave for cryptographic keys. Implements runtime protection: code obfuscation, anti-tampering checks, certificate pinning with fallback strategy. Manages security audit and compliance with GDPR and App Store Review Guidelines.
Architects iOS application UI using SwiftUI: View composition, state management via @State, @Binding, @ObservedObject, and @EnvironmentObject. Creates reusable components with ViewModifiers and ViewBuilders, optimizes redrawing through proper View hierarchy decomposition and @StateObject vs @ObservedObject usage.
Designs complex UIKit interfaces: custom UICollectionViewLayout for non-standard grids, compositional layout for heterogeneous content. Implements smooth animations via UIViewPropertyAnimator and Core Animation, optimizes scrolling through prefetching and cell reuse. Integrates UIKit components into SwiftUI via UIViewRepresentable.
API & Integration · 4
Defines API documentation standards for the iOS team: integration description templates, automatic code-to-documentation compliance validation. Coordinates with backend team on specification format, manages API contract negotiation process. Implements API design review as part of the new feature development process.
Defines GraphQL layer architecture for the iOS team: modular schema structure, fragment reuse strategy, and code generation pipeline. Implements query performance monitoring, manages complexity through query cost analysis. Designs patterns for offline support and optimistic updates in complex business scenarios.
Defines REST API integration standards for the iOS team: unified network module with code generation from OpenAPI specifications. Implements resilience strategies: circuit breaker, fallback to cached data, and graceful degradation without network. Designs offline-first architecture with request queue and conflict resolution.
Defines real-time functionality architecture for the iOS application: choosing between WebSocket, Server-Sent Events, and push notifications for different scenarios. Designs fault-tolerant system with fallback mechanisms and offline buffering. Implements connection quality monitoring and adaptive strategies for various network conditions.
DevOps & CI/CD · 1
Defines CI/CD strategy for the iOS team on GitHub Actions: multi-stage pipelines with gate checks, automatic version bumping and tag management. Implements quality gates: test coverage, SwiftLint compliance, binary size, and performance benchmarks. Optimizes CI costs through efficient macOS-minute usage and caching.
Testing & QA · 4
Defines E2E testing strategy for the iOS team: critical user paths, device and iOS version testing matrix. Implements BDD approach with Cucumber-Swift for business-language scenario descriptions, configures reporting for stakeholders. Manages test infrastructure: simulator pool, test accounts, and mock servers.
Defines integration testing strategy for the iOS team: which scenarios to cover, how to manage test environment and data. Implements Core Data migration testing, App Extension and Widget integration validation. Develops a framework for testing multi-module dependencies and inter-process communication.
Defines comprehensive testing strategy for the iOS platform: test pyramid considering mobile specifics, quality criteria for each level. Implements performance testing via XCTest metrics, stress testing under resource constraints. Manages device lab for real device testing, coordinates test cycles with QA team.
Defines unit testing strategy for the iOS team: minimum coverage standards, mandatory scenarios, and code review criteria. Implements TDD practices, creates test utility and shared mock libraries. Configures automatic coverage regression monitoring in CI/CD, trains the team on effective Swift code testing approaches.
Security · 2
Defines authentication architecture for the iOS platform: unified auth module for all organizational applications, token storage and refresh standards. Implements Device Check and App Attest for client authenticity verification, passkeys via ASAuthorization for passwordless authentication. Manages auth subsystem security audit and compliance.
Defines secure coding standards for the iOS team: security guidelines, mandatory code review checklists, and automated checks. Implements secure development lifecycle: threat modeling at design stage, security testing in CI/CD, and production monitoring. Trains developers on preventing typical mobile vulnerabilities.
AI-Assisted Development · 2
Implements AI tools into iOS team processes: standards for AI code generation usage, prompt templates for typical development tasks. Trains the team on effective practices: chain-of-thought for complex architectural tasks, few-shot examples for generating Swift code in project style. Defines AI applicability boundaries in iOS development.
Implements GitHub Copilot in iOS team processes: licensing, training, and usage standards. Configures repository-level instructions for uniform code generation in project style. Defines effectiveness metrics: acceptance rate, time-to-completion, and generated code quality. Manages security — excluding sensitive code from context.
Architecture & System Design · 2
Defines Clean Architecture standards for the iOS team: module templates, dependency rules, and architecture conformance tests. Adapts principles for SwiftUI: Presentation via ViewModels with @Observable, Domain with async/await Use Cases. Implements automatic boilerplate generation via Sourcery, conducts architectural reviews, and trains the team on SOLID principles in Swift.
Defines architectural strategy for the iOS product: modular architecture with dependency graph, inter-module and feature-layer communication standards. Designs platform subsystems: analytics, logging, feature flags, and A/B testing. Conducts architecture decision records and trains the team on mobile system design principles.
Version Control & Collaboration · 2
Defines code review standards for the iOS team: checklists, review SLA, and acceptance criteria. Implements automated checks: SwiftLint, danger-swift for PR validation, automatic reviewer assignment via CODEOWNERS. Conducts architectural reviews for major features, trains the team on effective peer review and constructive feedback culture.
Defines versioning strategy for the iOS team: Git Flow or Trunk-Based Development with feature flags, code review standards, and merge policies. Implements automation via GitHub/GitLab: protected branches, CODEOWNERS for modules, automated PR checks via CI. Manages release process: version tags, release branches, and cherry-pick hotfixes for App Store.
Performance Engineering · 1
Defines performance engineering strategy for the iOS team: budgets per module, metric ownership, and optimization process. Implements performance review as part of code review and release process, configures automatic blockers on budget violations. Coordinates with product team on functionality vs performance trade-offs.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Principal
0 skills get a higher expectation or become core when moving from Lead to Principal. The biggest jumps first.
} in the open competency matrix: 52 skills across 5 levels. The matrix is free for individuals and stays free.