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 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 and performing root cause analysis investigations.
Design, build, analyze and fix large-scale distributed systems.
Requirements
5+ years of overall software engineering experience.
Programming experience with modern languages such as Ruby/Python/Elixir etc.
Good experience working with relational and non-relational databases.
Good to have but not mandatory working experience with caching tools such as Redis.
Knowledge of version management with Git.
Awareness of TDD.
CI/CD knowledge would be a huge advantage.
Desire for maintainability.
Experience of working with cross-functional remote teams in an Agile software development framework.
Experience in designing APIs with proper documentation.
Strong written and verbal communications skills in English.