Senior iOS Engineer
We own and develop the MyDyson smart home app, which is at the forefront of Dyson's IoT and customer experience. We are proud of what we have built so far; we have an App Store and Google Play rating of 4.5 and 4.3 stars respectively, we have more than 1 million active users worldwide and our IoT platform has over 4 million connected Dyson machines. We have huge ambition to grow this platform and as we support more machines from more categories the challenge is significant.
We have App teams located across the UK, Singapore and Poland. We all come from a variety of educational backgrounds and experience levels; not all of us are computer science graduates. We believe that teams composed of people from diverse backgrounds are more successful and innovative.
Our teams have the autonomy to manage their own work using Scrum or Kanban frameworks, each honing their ways of working through regular retrospectives and knowledge sharing. We all share a commitment to creating high-quality code, and engineers choose to follow practices such as pair programming, mobbing, and test-driven development. We also regularly share our knowledge and interests peer-to-peer through weekly 'Community' meetings, which have led to the adoption of new technologies and improved cross-team collaboration.
Besides being software professionals, we are also people who enjoy playing online or board games, heading out to lunchtime yoga classes, recording our latest run on Strava or just catching up over coffee. The last two years have been a challenge, but we have maintained and strengthened our culture while working through the various lockdowns with virtual events, an informal team newsletter and an empathetic attitude to the needs of individuals.
About the role
We are on the lookout for iOS developers to join our mobile app team at Dyson. Communication, collaboration, self-evaluation, and a desire to improve are second nature to you, and you value good engineering practices. You understand the need to deliver robust, testable code balanced against the need to deliver fast.
Our iOS app is written in Swift and uses the MVVM pattern with Coordinators. We have multiple modules to separate functionality and reuse common code, managed along with our external dependencies primarily using Cocoapods.
Since almost everything that happens within our app is asynchronous, we use RxSwift extensively to capture, combine and manage event streams, also to bind the UI layer.
We are also starting to incorporate the latest technologies such as SwiftUI, Combine and Swift Package Manager.
We write our unit tests with XCTest and RxTest, and we use XCUITest for automated UI testing.
- You’re interested in how technology can improve the environments people live in through innovative and collaborative team work
- You have a demonstrable interest or experience in Platform work, either Core or CI based
- You’re a collaborative person that believes in the Agile principles and how they can help empowered teams deliver the best software
- You’ve contributed quality code to iOS apps that have delighted their users
- You’re passionate about learning new things and sharing those things with others
- You get satisfaction from solving real-world problems with well-crafted software
- Performance related bonus
- Life Assurance
- Accidental Death and Dismemberment Insurance
- Pension scheme with competitive employer contributions
- Recognition Program
- Holiday Allowance
- Free fruit delivered for office staff, free coffee and tea
- Cafeteria Benefit – wellness programme, cinema tickets, Multisport card etc.
- Possibility of working from home
- Medical: Employee cover + opportunity to buy additional cover for family
- Employee Assistance Program for employee and dependents