For our Australian HQ client in IoT space, we are looking to hire Software Engineers (application development).
This is a permanent REMOTE JOB.
You will be working on the Company's flagship water automation IoT products - gates that control the flow of water in large irrigation districts all around the world. Including India! Your code will help the Company's customers get their water cheaply, efficiently and automatically. You will have the opportunity to implement state of the art distributed control algorithms on devices with challenging power and networking constraints. You will be writing software mainly in C, working closely with a worldwide team of engineers at a rapidly growing company.
Skills & Qualifications :
Education / Qualifications :
- Graduate degree or better in a software related field (Software Engineering, Computer Science, Electronic Engineering, Robotics)
Experience & Knowledge :
A minimum of 3 years industry experience in professional software development.Development experience must be in the RTU / SCADA / embedded / IoT software application programming fieldsKey Technical Skills & Experience :
Programming Languages : C primarily (mandatory) , with additional excellent skills in Python and Bash (preferred, but not essential)Embedded application developmentIEC 61131 LanguagesUsing cross compilersLinux and POSIXReal-time operating environmentsDevelopment for ARM targetsHardware interfacing such as with Modbus sensorsWorking with MakefilesWorking with serial communication protocols (RS232, RS485, Modbus).Working with UDP and TCP / IPUsing threading and inter-process and synchronisation primitives.Using synchronous and asynchronous APIsSystems integration including hardware and softwareAgile software development practices (Scrum, Kanban etc)Distributed Source Code Management (Git)Preferred Technical Skills & Experience :
RTUsDevelopment and testing of legacy softwareBasic electronic fault-finding (low voltage)Vagrant, Jenkins & AnsibleExperience in the water industryAtlassian suite : Jira, Bitbucket and ConfluenceKey Responsibilities and Accountabilities :
Participate in all RTU software development lifecycle activities including planning, specification, design, development, documentation, maintenance, support, code review and testing.Determine how the software needs to be modified in order to meet customer requirements.Groom customer requirements into a well-defined scope and associated tasks.Develop software solutions to meet customer requirements.Provide support to customers & installers including fault finding, configuration and troubleshooting of RTU software.Support other team members and the wider business in troubleshooting activities.Prepare presentations and perform training as required.Contribute to the continuous improvement of RTU software and other products.Perform other related duties as assigned by Senior Engineers and management(ref : hirist.tech)