Job Description

As a Senior Software Engineer in the IoT domain you will be responsible for developing critical systems keeping in mind.

  • Concurrency: You must handle multiple activities concurrently like fetching and sending multiple messages from/to multiple devices at the same time.

  • Distributed Operations: You must run on a distributed network of multiple servers in different geographies, coordinating through APIs on a microservices architecture.

  • Scalability: You must scale horizontally as the traffic grows and leverage on the multiple CPU cores of the servers to run parallel threads.

  • Responsiveness: You must maintain a strict time-frame of <100ms to respond to users and devices, even when the servers are flooded with multiple requests.

  • Reliability: You must stay in continuous operation for years without any server downtime or restarts even for system updates through hot-swapping.

Your Roles and Responsibilities

  • Design and write programs to improve the availability, scalability, latency, and efficiency of Company’s IoT systems.

  • Work with the engineering team to explore and create new design/architectures geared towards scale and performance.

  • Work with multiple data ingestion sources and protocols like HTTP, MQTT, CoAP,OPC UA and databases to drive efficient ETL processes for streaming data from IoT sensor devices

  • Participate in code and design reviews to maintain our high development standards.

  • Engage in service capacity and demand planning, software performance analysis, tuning and optimization.

  • Collaborate with product and experience teams to define and prototype feature specifications.

  • Work closely with the infrastructure team in building and scaling back-end services as well as performing root cause analysis investigations.

  • Design, build, analyze and fix large-scale distributed systems.

 

  •