Senior Software Engineer, iOS
Thrive Market
The Role
This Senior Software Engineer, iOS role is central to Thrive Market’s next phase of growth. Our iOS app serves our most engaged members and is a critical driver of how customers discover, evaluate, and shop an ever-evolving catalog. As the business continues to invest in personalization, experimentation, and modern product development, we’re expanding our iOS capabilities to ensure the platform can scale with both customer demand and product ambition.
In this role, you’ll help evolve our iOS app from a legacy-heavy foundation into a modern, maintainable, and high-velocity codebase. Near-term, that means stabilizing the platform, reducing technical debt, and leading the migration from Objective-C and UIKit toward Swift and SwiftUI with a modular architecture and modern design system. Longer-term, you’ll partner closely with Product and Design in a true Product Triad to build deeply personalized, data-informed shopping experiences, leveraging analytics, experimentation, and ML-driven insights to help members discover the right products at the right time.
WHAT YOU'LL BE DOING
- Crafting the Future of Shopping: You won’t just be moving pixels; you’ll be building a deeply personalized shopping experience that makes every member feel like the app was built just for them.
- Modernizing Our Codebase: We’re moving away from the "old ways." You’ll be a key player in migrating legacy UIKit components into a modular, reactive architecture with a Design System DSL.
- Living in the Triad: 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.
- Obsessing Over the Details: 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.
- Building for the Long Haul: 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.
RESPONSIBILITIES
- Architecture & Development: Lead the end-to-end design and implementation of complex features.
- Technical Excellence: Maintain high code quality through rigorous code reviews, unit testing, and adherence to SOLID principles.
- Performance Optimization: Identify and resolve bottlenecks, memory leaks, and crashes to ensure a 99.9% crash-free session rate.
- Cross-Functional Delivery: Work alongside Product Managers to translate business requirements into technical specifications and realistic sprint goals.
- Continuous Improvement: Stay at the forefront of the Apple ecosystem (WWDC updates, Swift evolution) and integrate relevant technologies into our workflow.
- Tech Leadership: Contribute to the growth of the team by sharing knowledge, documenting best practices, and participating in architectural discussions.
QUALIFICATIONS (Required)
- 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)
NICE TO HAVE
- 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)
