We are looking for a passionate Software Development Engineer II - iOS to join our iOS engineering team and help build high-quality, consumer-facing mobile experiences. You will be responsible for designing, developing, testing, and shipping features for our iOS application. You will work closely with Product, Design, Backend, AI/ML, and other engineering teams to turn product ideas into polished, scalable, and reliable experiences. This role requires strong hands-on expertise in Swift and iOS development, good software engineering fundamentals, and the ability to independently own features from technical design through production.
Responsibilities:
- Design and develop high-quality iOS features using Swift, UIKit, and SwiftUI.
- Own features end-to-end from understanding requirements and technical design to implementation, testing, release, and production support.
- Build scalable, maintainable, and reusable components following modern iOS architecture and engineering practices.
- Work closely with Product and Design teams to translate product requirements and designs into intuitive user experiences.
- Integrate REST/gRPC APIs and build robust networking and asynchronous data flows.
- Work with modern Swift Concurrency (`async/await`, actors, Task) and/or Combine where appropriate.
- Write unit, integration, and UI tests to ensure reliability and regression protection.
- Debug complex production issues using Xcode debugging tools, Instruments, crash logs, and observability platforms.
- Identify and improve application performance, including startup time, memory usage, rendering performance, scrolling, and network efficiency.
- Participate actively in code reviews and contribute to improving engineering standards and practices.
- Work with modular codebases and contribute to reusable frameworks/packages using Swift Package Manager.
- Collaborate with backend, AI/ML, QA, DevOps, and other engineering teams to deliver features across the product.
- Stay current with Apple's latest technologies and evaluate new frameworks and APIs when they can improve the product.
- Contribute to technical design discussions and help make pragmatic architectural decisions.
The core requirements for the job include the following:
Core iOS Skills:
- 2+ years of professional software development experience, with significant hands-on iOS development experience.
- Strong proficiency in Swift and a solid understanding of Swift language fundamentals.
- Strong experience with UIKit and/or SwiftUI.
- Good understanding of iOS application architecture and design patterns such as MVVM, MVC, Coordinator, dependency injection, or similar approaches.
- Strong understanding of iOS fundamentals including: View lifecycle, Memory management / ARC, Closures, Protocols and generics, Error handling, App lifecycle, Threading and concurrency, Notifications and delegates
- Experience working with Swift Concurrency, async/await, actors, GCD, or Combine.
- Experience integrating RESTful APIs, JSON, authentication, caching, and asynchronous networking.
- Good understanding of local persistence technologies such as Core Data, UserDefaults, Keychain, or file storage.
- Experience writing unit tests and UI tests.
- Experience debugging and optimising production iOS applications.
- Strong understanding of Git, Xcode, Instruments, debugging, and profiling tools.
- Experience with App Store deployment, provisioning, certificates, TestFlight, and release processes.
Software Engineering Fundamentals:
- Strong problem-solving and analytical skills.
- Good understanding of Data Structures and Algorithms.
- Ability to write clean, readable, testable, and maintainable code.
- Understanding of SOLID principles and software design fundamentals.
- Ability to break down ambiguous problems into smaller, executable tasks.
- Ability to independently drive technical implementation of medium-size features.
- Good understanding of API contracts and client-server architecture.
- Ability to identify technical risks and communicate them early.
Good to Have:
- Experience building large-scale consumer applications.
- Experience with SwiftUI animations and advanced UI interactions.
- Experience with Swift Package Manager and modular iOS architecture.
- Experience with CI/CD for iOS.
- Familiarity with tools such as Firebase, Crashlytics, Sentry, Datadog, or similar observability platforms.
- Experience with analytics, feature flags, remote configuration, or experimentation platforms.
- Experience with image/video-heavy applications and performance optimisation.
- Experience with push notifications, deep linking, Universal Links, widgets, Live Activities, or App Intents.
- Experience working with Apple Intelligence, on-device ML, Vision, Core ML, or other AI-powered experiences.
- Experience integrating real-time technologies such as WebSockets or gRPC.
- Contributions to open-source projects or strong personal/side projects.
What Success Looks Like
In this role, you will:
- Independently own and ship meaningful iOS features.
- Consistently deliver high-quality, production-ready code.
- Improve application reliability, performance, and maintainability.
- Make sound technical decisions within your area of ownership.
- Proactively identify and solve engineering problems rather than only implementing assigned tasks.
- Collaborate effectively with Product, Design, Backend, QA, and other engineering teams.
- Raise the engineering quality of the iOS codebase through reviews, testing, documentation, and reusable solutions.