
iOS Software Engineer
What we’re building and why we’re building it.
Every month, millions of people use Fetch earning rewards for buying brands they love, and a whole lot more. Whether shopping in the grocery aisle, grabbing a bite at the drive-through or playing a favorite mobile game, Fetch empowers consumers to live rewarded throughout their day. To date, we’ve delivered more than $1 billion in rewards and earned more than 5 million five-star reviews from happy users.
It’s not just our users who believe in Fetch: with investments from SoftBank, Univision, and Hamilton Lane, and partnerships ranging from challenger brands to Fortune 500 companies, Fetch is reshaping how brands and consumers connect in the marketplace. When you work at Fetch, you play a vital role in a platform that drives brand loyalty and creates lifelong consumers with the power of Fetch points. User and partner success are at the heart of everything we do, and we extend that same commitment to our employees.
At Fetch, we value curiosity, adaptability, and the confidence to explore new tools, especially AI, to drive smarter, faster work. You don’t need to be an expert, but you should be ready to learn quickly and think critically. We welcome learners who move fast, challenge the status quo, and shape what’s next, with us. Ranked as one of America’s Best Startup Employers by Forbes for two years in a row, Fetch fosters a people-first culture rooted in trust, accountability, and innovation. We encourage our employees to challenge ideas, think bigger, and always bring the fun to Fetch.
Fetch is an equal employment opportunity employer.
Meet Fetch Engineering:
At Fetch, our engineering philosophy emphasizes innovation, adaptability, and informed decision-making. Our engineers thrive in complex environments, making decisions based on critical thinking and data, even in uncertain situations. We value proactive problem-solving and focus on driving impactful results while maintaining high technical standards. You will work alongside talented engineers who are dedicated to pushing the boundaries of technology and encouraging each other to excel. We understand that Fetch may not be the right fit for everyone, but if you're passionate about solving challenging problems and navigating intricate systems, Fetch could be a great place for you.
About the Role:
We are looking for an iOS Software Engineer to build and maintain a world-class mobile application that works directly with our backend services and external partners. Success in this role requires the ability to take on challenging problems, design and develop elegant solutions with a user-centric focus, and deliver measurable impact. You’ll be part of a small, multi-functional team that includes other engineers, a designer, product manager, data scientist and other roles. We’ll rely on your experience in architecture discussions and product planning meetings, and you’ll have the opportunity to help establish new paradigms and patterns as we scale.
This role is product-focused, but you'll also partner closely with 25+ iOS engineers to improve developer experience, shared systems, and the frameworks that power our codebase. You’ll have the opportunity to work alongside these developers to strengthen the core of our app while continuing to drive impact on your product growth team.
Depending on the team, your work may include:
- Growth Engagement: Partnering closely with Product, Design, Analytics, and the Growth organization to design, ship, and evaluate product experiments that move core metrics. The Growth Engagement team’s mission is to add tens of thousands to millions of high-quality new users to Fetch by making the product itself the engine of acquisition, activation, and retention. The team focuses on measurable north-star outcomes, including new user sign-ups, activation and FTUX, daily engagement, and reactivation, and builds product experiences that scale those metrics over time.
- Play: Partnering closely with Product, Design, Analytics, and the Play organization to design, ship, and evaluate experiments that improve how users discover, engage with, and are rewarded for playing mobile games on Fetch. The Play team is focused on making gameplay a compelling, habit-forming experience by aligning meaningful rewards with fun, high-quality games. The team drives measurable outcomes across key metrics including game starts, completion, repeat play, retention, and long-term engagement, iterating on reward mechanics and player experiences to scale participation and value over time.
- Growth Loyalty: Partnering closely with Product, Design, Analytics, and other product engineering teams to design, ship, and evaluate features and experiments that drive engagement across Fetch’s core user activities, including receipt scanning, daily check-ins, offers, Play, and Shop. The Growth Loyalty team is a cross-functional, product-first group focused on gamifying loyalty through a tiered progression system that makes everyday actions feel rewarding, goal-oriented, and repeatable. The team drives measurable outcomes across key metrics such as retention, lifetime user value, and cross-vertical engagement, by continually iterating on the loyalty program feature to encourage exploration and engagement.
This is a full-time role that can be held from one of our US offices or remotely in the United States.
What You’ll Do
- Design, build, and ship new iOS features from early concepts, design mocks, or loosely defined ideas for a rapidly growing user base.
- Apply Human Interface Guidelines to deliver intuitive, high-quality user experiences.
- Extend, refactor, and maintain existing codebases while improving performance across networking, UI rendering, and data management.
- Contribute to scalable mobile architectures that support modularization, testability, and long-term maintainability.
- Collaborate with cross-functional partners and clearly communicate technical tradeoffs, risks, and solutions to non-technical stakeholders.
- Debug, profile, and optimize application performance using Xcode and related tooling.
- Write and maintain unit tests, UI tests, and automation to ensure reliability and quality.
- Take ownership of ambiguous technical problems and drive them to resolution with minimal guidance.
- Contribute to shared frameworks and systems that enable large, distributed engineering teams to move quickly.
- Stay current with developments in the iOS ecosystem and actively explore AI-powered tools that improve developer productivity and engineering efficiency.
Qualifications
- Strong understanding of object-oriented and protocol-oriented programming principles.
- Proficiency with Swift, SwiftUI, and modern concurrency patterns, including async and await.
- Experience with reactive programming paradigms, such as Combine or similar frameworks.
- Hands-on experience with dependency injection, modular frameworks, and protocol-oriented architectures.
- Solid knowledge of mobile architecture patterns such as MVVM and modularization strategies.
- Experience working with REST APIs, networking layers, and data modeling for mobile applications.
- Familiarity with debugging, performance profiling, and optimization using Xcode Instruments.
- Proven experience shipping features in medium to large engineering teams and contributing to high-quality production codebases.
- Strong communication skills with the ability to explain technical concepts to non-technical audiences.
- High degree of ownership, curiosity, and comfort operating in evolving or ambiguous problem spaces.
- Demonstrated interest in innovation and an AI-forward mindset, with enthusiasm for adopting tools that improve engineering efficiency.
At Fetch, we'll give you the tools to feel healthy, happy and secure through:
- Equity: We offer employees equity in Fetch, so that everyone can benefit from Fetch’s growth.
- 401k Match: Dollar-for-dollar match up to 4%.
- Benefits for humans and pets: We offer comprehensive medical, dental and vision plans for everyone including your pets.
- Continuing Education: Fetch provides ten thousand per year in education reimbursement.
- Employee Resource Groups: Take part in employee-led groups that are centered around fostering a diverse and inclusive workplace through events, dialogue and advocacy. The ERGs participate in our Inclusion Council with members of executive leadership.
- Paid Time Off: On top of our flexible PTO, Fetch observes 9 paid holidays, including Juneteenth and Indigenous People’s Day, as well as our year-end week-long break.
- Robust Leave Policies: 20 weeks of paid parental leave for primary caregivers, 14 weeks for secondary caregivers, and a flexible return to work schedule.
- Calvin Care Cash: Employees who are welcoming new family members will also receive a one time $2,000 incentive to assist employees with covering the cost of childcare, clothing, diapers and much more!
- Flexible Work Environment: Collaborate with your team in one of our stunning offices in Madison, Birmingham, or Chicago. Or you can work fully remotely from anywhere in the US. We’ll ensure you are equally equipped with the hardware and software you need to get your job done in the comfort of your home.
Fetch is an equal opportunity employer that embraces diversity, inclusion, and respect for all individuals. We do not discriminate on the basis of race, color, religion, gender, gender identity or expression, sexual orientation, age, national origin, marital status, veteran status, disability, or any other characteristic protected by applicable law. Our commitment to inclusivity ensures that everyone is treated with dignity and has the opportunity to succeed based on their talent, skills, and potential.
Fetch also provides reasonable accommodations to qualified individuals with disabilities or those with sincerely held religious beliefs, as required by law. If you need assistance with the application process or require an accommodation, please contact us at accommodations@fetch.com.
Learn more: Fetch Recruitment Scam Warning.
Create a Job Alert
Interested in building your career at Fetch? Get future opportunities sent straight to your email.
Apply for this job
*
indicates a required field