Senior Cloud Developer
SGD Competitive Remuneration Package
As Cloud Development Lead, you will lead a team Cloud Service developers designing, developing deploying Cloud Services for IoT solutions for the worldwide market. You would lead a group of cloud developers to develop world class mobile apps and cloud services by working closely with key stakeholders and other cross-site development centres
In May 2016 Dyson launched the second of its connected products, the Dyson Pure Cool Link, which joins our existing 360 Eye robot vacuum cleaner with its companion eco-system, Dyson Link. Dyson Link is our IoT solution to enable Dyson products to work in a connected environment. It includes the key components required to create a connected product, from mobile apps, web/CRM integrations and cloud services (provisioning, asset management, message routing, product/app analytics, persistence and scaling).
You will be working in a global multi-disciplinary team including mobile and cloud Developers, app and product UX/UI designers and electronics and mechanical engineers. You will often be collaborating with experts from different areas of RDD (Research, Design & Development) and different RDD sites (Malmesbury, Bristol and Shanghai) designing how connectivity is woven deeply into our products. You must be independent and methodical with excellent problem-solving skills. It is essential to be knowledgeable about the latest trends in connectivity and mobile technology and comfortable with rapidly picking up new technologies. A thirst to overcome problems and limitations in order to reach our vision is absolutely essential.
- Build technical relationships with the key IoT players and service providers design the technical integration designs between Dyson Link & 3rd party IoT ecosystem
- Design with scalability in mind
- Leveraging cloud computing services
- Building integrity in through excellent information flow
- Deliver World leading connected product experiences by
- Automating cloud deployments with zero downtime
- Building on and expanding our automated test suites
- Improving efficient and Eliminating waste
- Continuously Delivery and learning cycles
- Plan for capacity & availability
- Ensure our cloud systems meet customer response time availability expectations
- Ensure that load testing covers pinch points in the distributed architecture
- Advocate for capacity, availability and resiliency patterns
- Design & implementation
- Writing Java, C#, Node JS, Python – This is very much a hands-on coding role
- Advocate for design patterns and code quality
- Reducing technical debt with BDD and refactoring
- Applying domain driven design principles
- Working closely with App developers, Product Owners, Architects, Security & Operations
- Implement and communicate best practices
- Ensuring appropriate unit, integration, contract and acceptance testing is used
- Ensuring deployments and development tools are automated
- Promoting and expanding information radiators
- Develop cross-functional passionate “high velocity” teams
- Amplifying learning and empowering the team
- Evangelising about lean, XP and agile software methodologies
- Promoting code craftsmanship and clean code
- Coaching, mentoring and pairing
We will expect you to have
- OO design, MVC and other design patterns and strong programming skills
- Development languages – Java, C#, NodeJS, Go
- Java (J2EE/ J2ME) and .Net
- Knowledge of SQLite, MySQL, nonSQL or similar database mgmt system.
- Third-party libraries and APIs.
- Familiarity with cloud message APIs and push notifications for both Apple and Android
- Network and Web security (secured cert service and mgmt., DNS, firewall and etc)
- Amazon Web Services (AWS) and the services which includes EC2 servers, Lamda, VPC (Virtual Private Cloud), CloudWatch and etc
- Design experience with Web Services (REST, SOAP, etc ..) and data formats such as XML, JASON
- Understanding of “session management” in a distributed server environment
- Experience with serverless and containerization technologies
- Behaviour Driven Development, Acceptance test driven development
- Experience with Agile development (Extreme Programming (XP), pairing)
- Mentoring and communication skills
- Experience in Configuration management tools such as Terraform or Cloud formation, Ansible, Chef, Puppet
- AWS IoT experience and knowledge of MQTT
- Experience of Vagrant, Docker, Consul, Nomad
- Configuration of Kibana, Elastic Search, Logstash, Splunk, Graphite
- A passion for Code craftsmanship, clean code and design patterns
- Experience of working in Continuous Delivery, kanban and scrum projects.
Functional Key Competencies
- Bachelor Degree or Masters in Computer Science or Computer Engineering or equivalent
- Strong communication skills and the ability to build strong relationships with others.
- A strong understanding of Agile product development.
- Able to take accountability for deliverables and focus on achieving them in a timely manner to the highest quality standards.
- Broad mobile development skills.
- Customer focused and keen on exceeding expectations.
- Self-motivated, dynamic and results-driven.
- Professional in tense or challenging situations.
- Clear communication, good inter-personal skills at all levels of contact.
- Ability to work across boundaries and bring together a wider number of disparate elements in a cohesive way to enable a vision.
- Strong planning & time management skills.
- Ability to prioritize and manage workload (both your own and others).
- Sensitive to cultural differences across a global company.
- Ability to be flexible as part of a small team in a growing company.