We own and develop the Dyson Link Smart home app (more info here), which is at the forefront of Dyson's IoT experience. We are proud of what we have built so far; we have an App Store and Google Play rating of over 4 stars, more than 1 million active users worldwide, and over 4 million connected Dyson machines on our IoT platform. As we connect more machines from different categories, our ambition to grow this platform is substantial.
There are 6 app teams, currently located in the UK and Singapore. Each team consists of up to 6 mobile developers, 3 test automation engineers, a scrum master, and a product owner. We have a diverse mix of educational backgrounds and experience levels within our teams, recognizing the value of diversity in driving success and innovation.
Our teams have the autonomy to manage their own work using Scrum or Kanban frameworks, continuously improving their ways of working through retrospectives and knowledge sharing. Quality code is a shared commitment, and our engineers embrace practices such as pair programming, mobbing, and test-driven development. We foster peer-to-peer knowledge sharing through "community meetings," leading to the adoption of new technologies and improved collaboration across teams.
Collaboration with other teams within our 15,000-person organization, such as embedded software and cloud teams, is crucial. We plan in 5-sprint "increments" based on the best aspects of the Scaled Agile Framework, providing visibility of upcoming work while remaining responsive and facilitating effective collaboration.
Building a supportive environment based on mutual trust and respect is vital for our teams to thrive and deliver their best work. In addition to being software professionals, we enjoy activities like playing games, attending lunchtime yoga classes, tracking runs on Strava, or simply catching up 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 approach to individual needs.
**About the role**
We are seeking Android developers to join our mobile app team at Dyson. We value effective communication, collaboration, self-evaluation, and a desire for continuous improvement. You understand the importance of delivering robust, testable code while also prioritizing efficiency.
Our app follows a modular construction and employs the MVVM pattern. Around 65% of our codebase is in Kotlin, and we are actively migrating our remaining Java code. To expedite development and reduce boilerplate code, we utilize various JetPack libraries, including Navigation Component for UI flows, Room for persistence, and WorkManager for background tasks.
For cloud and product API calls, we rely on Volley, AWS IoT SDK, and Gson, while Dagger handles dependency injection. As most app activities are asynchronous, we extensively use RxJava to capture, combine, and manage event streams. Our tests are written using JUnit, Robolectric, and Mockito, with UI tests using Espresso and Kakao.
**What you'll be doing**
- Collaborating with fellow developers to contribute to features and improvements in our Dyson Link app, ensuring they are thoroughly tested, robust, and scalable.
- Working alongside colleagues from various disciplines, including test engineers, product owners, Scrum Masters, UX/UI designers, and software engineers in our cloud and embedded teams.
- Sharing knowledge within the app team to develop your skills, enhance your competencies, and support your teammates' growth.
- Identifying and evaluating new technologies, tools, and approaches to continuously improve standards and deliver high-quality software.
- You are genuinely interested in how technology can enhance people's living environments.
- You embrace collaboration and Agile principles, understanding how they empower teams to deliver exceptional software.
- You have contributed quality code to Android apps