Senior Mobile Engineer (iOS)
- Paarden Eiland Rd, Paarden Eiland, Cape Town, 7420, South Africa
- Employees can work remotely
Yoyo powers some of the world’s leading retail brands, through customer loyalty and rewards software solutions, to offer the world's most rewarding buying experience.
We create a space where passionate, smart, curious and creative people thrive.
Our values are our way of being, and how we show up every day.
This is how we help our clients build their best business and our staff build a career to be proud of. Living these values builds an environment where world-class passionate people create world-class scalable products that delight customers and consumers and drive scalable profit and revenue growth.
Are you passionate about all things iOS, Swift, and also have an eye for detail? Do you enjoy working in a cross-functional team, alongside Android Engineers, Backend Engineers, Designers and Product Managers?
As part of our team, you will take ownership of the specification and delivery of technical projects and development of new features. Your work will change the relationship that millions of customers have with their favourite brands.
Working at Yoyo, you’ll gain an understanding of our component library and style guide, developed in collaboration with our designers, which allows us to reuse code and have a consistent look and feel throughout all apps.
Key skills and experience
- Good knowledge of Swift and UIKit
- 1-2 years managerial or mentoring experience
- Experience working with a component library and style guide
- Good understanding of SOLID principles
- Experience with Functional Reactive Programming (FRP), particularly RxSwift and/ or Combine
- Experience consuming RESTful APIs, and collaborating in their design
- Experience with unit testing (XCTest) and, equally important, writing testable code
- Experience with Git and GitHub
- Comfortable working with CI/CD processes
- Familiarity with the process of creating and shipping apps (provisioning profiles, certificates, App Store Connect, TestFlight, etc.)
- Familiarity with common architectural patterns (MVC, MVVM, etc.)
- Provide technical guidance and mentorship to junior members in the team.
- Continuously collaborate with iOS Engineers across different teams.
- Work and collaborate with product owners and Agile teams to understand, design, develop and implement new features using engineering best practices, design guidelines and principles.
- Develop innovative new features: evaluate user journeys, design implementations from product specifications, write great code and collaborate with your team to deliver features.
- Contribute technical ideas to improve our products and refine our development process - we have a well defined roadmap for technical improvements on our iOS codebase.
- Translate designs into efficient, maintainable and reusable code and tests.
- Participate in code review to integrate changes with the existing codebase.
- Use performance metrics to build a delightful experience for our users. Allow data to drive decisions about what to refactor.
- Use your time effectively and take ownership of your work.
- Support other members of the team, communicate and participate.
- Participate in our engineering culture.
- Attend daily stand-ups, plan with your team and share knowledge.
- Be passionate: Spiral up, be positive, bring momentum, and energy to those around you
- Be an owner: Be accountable and take responsibility. Find solutions, learn from your mistakes and own tasks to completion
- Be world class at speed: Delivering world leading solutions at speed
- Be curious and creative: Constantly innovating, exploring, learning, stretching yourself, pushing the boundaries and thinking out of the box
- Be a team player: Leave ego at the door, be teachable, engaged, inclusive, and transparent. Bring the best of yourself and the best out of others, rallying behind a larger team mission