We are looking for a software architect and distributed systems engineer to join Arm's IoT cloud services research team. This is a unique opportunity to join a small startup-like team and help drive IoT cloud services agenda at Arm. You will work on state of the art technologies and play a vital role in defining and implementing next generation IoT platform and cloud services for billions of interconnected devices.
What will I be accountable for?
As a lead software architect in the team, you will be responsible for driving the software architecture of the IoT cloud services. We are seeking individuals who have the following traits:
- You are a hands-on systems builder with keen interest in software architecture, programming, and system design.
- You have deep experience in distributed systems and a healthy dose of obsession about scalability, fault tolerance, and high availability. You are able to dive deep into topics such as consensus protocols, distributed co-ordination, state machine replication, consistency models, etc.
- You have significant experience with several open source systems such as Kafka, Zookeeper, Consul, Kubernetes, etc. When using these systems, you naturally gravitate towards understanding them at an internal architecture level.
- You are good in identifying the technologytrade-offs and can synthesize pragmatic solutions to the problems at hand by judiciously applying published and open-source technologies.
- You are a strong programmer and are not afraid to dive in large code bases.
- You take pride in your code and enjoy contributing to open source projects.
- You are thrilled at the prospect of enabling and crafting the vision of a trillion interconnected devices.
What skills, experience, and qualifications do I need?
- Bachelors (BS), Masters (MS) or PhD in Computer Science or related disciplines
- A minimum of 5 years of work experience in software engineering, preferably in designing large scale distributed systems and scalable/highly-available cloud services
- Proven track record of building and delivering high quality software systems or services
- Fully proficient in at least one programming language such as C/C++/Java/Go/Python/Scala
- Experience with databasetechnologies and web/cloud services
- Excellent networking and communication skills