Strong experience (5+ years) developing native iOS apps using Swift, including a solid understanding of iOS SDK, UIKit/SwiftUI.
Experience integrating and working with hardware-connected devices (e.g., Bluetooth LE, WiFi modules, IoT, pairing workflows) or, at a minimum, strong awareness of connectivity flows.
Proven track record building production-quality apps: modular architecture, clean code, maintainability, testability.
Familiar with asynchronous programming (e.g., Combine, RxSwift, async/await) and managing event streams / asynchronous flows.
Familiar with RESTful APIs or cloud services, JSON serialisation/deserialisation, handling network failures, caching, offline behaviour.
Knowledge of modular architecture patterns (MVVM, Coordinators, Clean Architecture).
Knowledge of the MQTT protocol
Experience with version control (Git), CI/CD pipelines, unit tests (XCTest/XCUITest) and preferably UI/automation tests.
Good understanding of memory management, threading, performance optimisation, and experience resolving common mobile/mobile-device connectivity issues.
Ability to work collaboratively in an agile/scrum team, communicate effectively with non-technical stakeholders and device-engineering teams.
Fluent in English and able to pick up product/firmware dependencies quickly.
Experience with SwiftUI and/or migrating legacy UIKit code to SwiftUI.
Experience with RxSwift or other reactive frameworks, or familiarity with Combine.
Experience with IoT platforms / connected-device ecosystems (device discovery, provisioning, over-the-air updates, telemetry).
Familiarity with Bluetooth LE (BLE) protocols, WiFi provisioning, network security, and/or embedded/firmware interaction.
Experience using dependency-injection frameworks, modularisation (multiple modules in an app), and using Swift Package Manager or CocoaPods.
Familiarity with automated UI testing (XCUITest) and performance/profiling tools (Instruments).
Experience in consumer hardware or smart home domain — for example, appliances, sensors, robotics.
Familiarity with analytics/telemetry frameworks, feature-flagging, remote config, and crash-reporting.
Experience working in geographically distributed teams or multi-region apps.