Software Engineer (IoT Device Backend)

  • Zürich, Switzerland
  • Full-time

Company Description

Nexxiot AG, headquartered in Zurich, Switzerland, is a pioneer and industry leader in the development and delivery of digital supply chain management solutions. It is a spin-off of ETH Zurich, one of the world's leading technical universities. Founded in 2015, the company can rely on more than ten years of research in the areas of complex systems, big data algorithms and ultra-low power embedded technology. Currently employing more than 60 people across 4 offices and more than USD 80m in total debt and equity funding, the company is established as market leader in Europe and well-equipped for future growth world-wide.

Job Description

You will be a part of our Devices software team, which is responsible for the command and control of our IoT device fleet. This includes monitoring and interacting with devices, secure communications and preprocessing sensor data. You are going to work closely with firmware and hardware engineers, to develop interfaces between the embedded systems and the data processing architecture.

This is a (specialized or full-stack) software engineering position with focus on development and operation of software services. We use agile DevOps and SRE practices to deliver a high availablity backend as the cornerstone of our IoT infrastructure. From design, implementation and test phase to operation, you are responsible for the full lifecycle of team-owned software and architectural components. The focus of the role will be:

  • Conduct technical requirements analysis, including functional and non-functional requirements (e.g. security, availability, scalability, cost-optimization, ...)
  • Design, implement and document software components based on requirements analysis, come up with a test suite and integrate CI/CD
  • Maintain and operate existing systems: implementing features, bugfixes, refactoring and version upgrades
  • Participate in an agile software development process (planning meetings, code reviews, retrospectives) and coordinate a project timeline with product owner and product managers
  • Process and enrich incoming IoT sensor data, to make it readily usable for downstream services
  • Automate systems to monitor and adapt behavior of IoT devices
  • Collaborate with customer support team to resolve incidents and investigate cases of anomalous behaviour of devices in the field (2nd level support)

Qualifications

  • Kotlin and/or Java knowledge at an advanced level
  • High degree of self-initiative and ability to work independently
  • Willingness to take ownership of projects throughout design, implementation, testing and operation phase
  • Experience in distributed system design, with a focus on architecture and APIs (REST/gRPC)
  • Interest in systems or embedded programming (e.g. C, C++, Rust) is appreciated
  • Understanding of low-level protocol design (e.g. Protobuf)
  • Experience with JVM build systems (Maven/Gradle) and version control systems (preferably git)
  • Knowledge of the following tools is a plus:
    • Unix shell + ssh
    • Apache Kafka or comparable stream-processing frameworks
    • AWS DynamoDB
    • Docker
    • Ansible
    • PHP

Additional Information

You can choose between either a MacBook Pro or a Microsoft Windows Notebook at a top location right at Zurich Hardbrücke. Our recruitment team is looking forward to receiving your CV via our career portal or via the button below.

Nexxiot is an equal opportunity employer. Welcoming diversity gives us a competitive advantage in the global marketplace and is an important driver of our success and culture.