Sr. Software Developer (IOT)

  • Full-time

Company 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.

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.

 

  •  

Qualifications

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.

Additional Information

Job Type: Full-time/Part-Time/Remote
 

Work Remotely