Thrive Market is an online, membership-based market focused on making healthy and sustainable living accessible to everyone. The Senior Software Engineer, iOS role is crucial for evolving the iOS app to enhance customer experiences through modern development practices and personalization.
Responsibilities:
- Lead the end-to-end design and implementation of complex features
- Maintain high code quality through rigorous code reviews, unit testing, and adherence to SOLID principles
- Identify and resolve bottlenecks, memory leaks, and crashes to ensure a 99.9% crash-free session rate
- Work alongside Product Managers to translate business requirements into technical specifications and realistic sprint goals
- Stay at the forefront of the Apple ecosystem (WWDC updates, Swift evolution) and integrate relevant technologies into our workflow
- Contribute to the growth of the team by sharing knowledge, documenting best practices, and participating in architectural discussions
- Building a deeply personalized shopping experience that makes every member feel like the app was built just for them
- You’ll be a key player in migrating legacy UIKit components into a modular, reactive architecture with a Design System DSL
- You’ll partner closely with Product, Design, and Engineering in a tight feedback loop (the "Product Triad"), ensuring we aren't just shipping code, but solving the right problems for our members
- From butter-smooth animations to ensuring our app is accessible to everyone, you’ll be the guardian of the "look and feel" of our iOS experience
- You'll join an engineering culture committed to moving from scrappy startup mode to mature systems mode, with opportunities to take on meaty, impactful engineering projects
Requirements:
- 7+ years of iOS development experience
- Strong proficiency in Swift; ability to work in mixed Swift/Objective-C codebases
- Strong understanding of application architecture and the 'why's' behind it
- Experience with LLM coding assistants. Familiarity with the current state of agentic development
- Experience with SwiftUI and UIKit
- Experience with MVVM or similar architectural patterns
- Experience with reactive programming (Combine, RxSwift, or ReactiveObjC)
- Experience with local persistence and caching strategies
- Experience writing unit tests and working with mocks/test doubles
- Understanding of dependency injection and writing testable code
- Familiarity with modular architecture using Swift Package Manager (SPM)
- Familiarity with Git and collaborative development workflows
- Experience migrating legacy codebases (Objective-C → Swift, UIKit → SwiftUI)
- E-commerce or consumer app experience
- Familiarity with analytics platforms (Amplitude, etc.)
- Experience with A/B testing / feature flagging (Optimizely, LaunchDarkly)
- Experience with accessibility implementation (VoiceOver, Dynamic Type)
- Experience with Native Android Applications e.g. Kotlin, Kotlin Multi-Platform, etc