Job Detail

iOS Developer


Job Description

Job Description

**About us**

We own and develop the MyDyson smart home app, which is at the forefront of Dyson's IoT experience. We take pride in our achievements, with an App Store rating of over 4.5 stars and a Google Play rating of 4.3 stars. Our app boasts more than 1 million active users worldwide, and our IoT platform connects over 4 million Dyson machines. As we continue to expand across various machine categories, we face significant challenges and have ambitious plans for growth.

**Our Team**

Our team consists of 6 app teams located in the UK and Singapore, each comprising up to 6 mobile developers, 3 test automation engineers, a scrum master, and a product owner. We embrace diversity, with team members from various educational backgrounds and experience levels, not limited to computer science graduates. We believe that diverse teams drive success and innovation.

Our teams have the autonomy to manage their work using Scrum or Kanban frameworks. We continually improve our ways of working through regular retrospectives and knowledge sharing sessions. Quality code is a shared commitment, and our engineers follow best practices such as pair programming, mobbing, and test-driven development. Through peer-to-peer knowledge sharing in "community meetings," we adopt new technologies and enhance collaboration across teams.

Collaboration with other parts of the business, including embedded software and cloud teams, is essential. We plan our work in 5-sprint increments, drawing from the best aspects of the Scaled Agile Framework. This approach provides visibility of upcoming tasks while ensuring responsiveness and effective collaboration with other teams in our 11,000-person organization.

Building a supportive environment based on trust and respect is crucial to enable our team members to perform their best. We encourage decision-making at the team level, and every team member's contribution is valued.

Besides being software professionals, we enjoy various activities such as playing games, attending lunchtime yoga classes, tracking runs on Strava, and connecting over coffee. Despite the challenges of the past year, we have maintained and strengthened our culture through virtual events, an informal team newsletter, and a supportive attitude towards individual needs.

**About the role**

We are seeking Android developers to join our mobile app team at Dyson. If you are someone who values communication, collaboration, self-evaluation, and continuous improvement, this role is for you. Delivering robust, testable code efficiently is a priority.

**Our Tech**

Our iOS app is built using Swift and follows the MVVM pattern with Coordinators. We adopt a modular construction approach, and approximately 65% of our codebase is in Kotlin, with ongoing efforts to migrate the remaining Java code.

To expedite development and reduce boilerplate code, we leverage JetPack libraries such as Navigation Component for UI flows, Room for persistence, and WorkManager for background tasks. For cloud and product API calls, we utilize Volley, AWS IoT SDK, and Gson. Dependency injection is handled through Dagger. Asynchronous operations are prevalent in our app, and we extensively use RxSwift to manage event streams and bind the UI layer. Our tests are written using XCTest and RxTest, while automated UI testing is done with XCUITest and Kakao.

**What you'll be doing**

- Collaborating with fellow developers to contribute to features and improvements in our MyDyson app, ensuring they are thoroughly tested, robust, and scalable.

- Working closely with colleagues from different disciplines, including test engineers, product owners, Scrum Masters, UX/UI designers, and software engineers from our cloud and embedded teams.

- Sharing knowledge within the app team to foster your own growth and that of your teammates.

- Identifying new technologies, tools, and approaches to continually enhance our standards and quality.


Job Requirement

**About you**

- You have a genuine interest in leveraging technology to improve people's living environments.

- You thrive in collaborative environments and believe in the Agile principles that empower teams to deliver exceptional software.

- You have a track record of contributing high-quality code to iOS apps that have delighted users.

- You have a passion for learning new things and actively sharing your knowledge with others.

- Solving real-world problems with well-crafted software brings you a sense of satisfaction.


Full Name*
Email address*
Upload a different Resume (Your application will be submitted using this resume instead)
Choose a file
Only .pdf is allowed