Sr. Software Developer (IOT)
StackAvenueTechnologies
Posted: July 30, 2021
Interested in this position?
Create a free account to apply with AI-powered matching
Quick Summary
As a Senior Software Engineer in the IoT domain, you will be responsible for developing critical systems that handle multiple activities concurrently, including fetching and sending messages from/to multiple devices at the same time.
Required Skills
Job Description
StackAvenue Technologies is a Product Development and Innovation Company Building IoT, Web, Mobile, and Desktop Applications using various Technologies namely Ruby, Angular, Flutter, Node, Salesforce, React, Elixir. We are helping other startups scale ⚡ by providing relevant software technology support.
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
• 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.
•
Required Software Aptitude and Qualifications
• 5+ years of overall software engineering experience.
• Programming experience with modern languages such as Ruby/Python/Elixir etc.
• You should have good experience working with relational and non-relational databases. We use Postgres and Cassandra.
• Good to have but not mandatory working experience with caching tools such as Redis, Queue mechanism setup with RabbitMQ.
• Good knowledge of version management with Git.
• Awareness of TDD.
• CI/CD knowledge would be a huge advantage.
• Will to design and maintain large scale distributed systems.
• Past experience in building complex applications, either by yourself, or as part of a larger team
• Desire (obsessive?) for maintainability.
• Experience of working with cross-functional remote teams in an Agile software development framework.
• Experience in designing APIs with proper documentation.
• Ability to write useful and maintainable tests.
• Good understanding of the common architectural patterns and design principles.
• Solid understanding of how modern web applications work.
• Strong written and verbal communications skills in English to engage a variety of large audiences, internally and externally.
• Strong analytical and reasoning skills.
• Bachelor’s Degree or equivalent in any relevant discipline.
Good to have experience with Elixir
It would be amazing if you have some experience working with Elixir Lang.
• You should be aware of idiomatic programming in Elixir, and should have good awareness of concepts such as pattern matching, recursion, and behaviours.
• You should be well versed with concurrency and processes in Elixir.
• You should be hands on with Genservers, Tasks, Agents, Supervisors, and other OTP concepts in Elixir.
• Plus points if you have worked with data processing libraries such as Genstage, Flow and Broadway.
Job Type: Full-time/Part-Time/Remote
Work Remotely