Key responsibilities: Conduct research and development of software on Real-Time, Windows, and Linux based Operating Systems. This will include but not limited to: Software development for embedded systems, Control systems; and Artificial Intelligence solutions. Implement software projects, according to Software Development Processes, Engineering standards and MIL std. Implement software configuration management principles. Perform verification and validation of embedded software during the various system and/or sub-system integration phases. Participate in the creation of new technologies or improvement of existing technologies. Guide/coach junior team members and support project team members through inputs on technical aspects related to your field of expertise. Develop software requirements/description documents (i.e., SSS, SDD, STD, ATP) from system level specification/ client requirements in accordance with engineering standards. Perform software implementation and software unit testing in accordance with high level software requirements/description documents (i.e., SSS, SDD, STD) from system/sub-system level specifications. Qualifications, skills and experience: A Bachelors degree in electronic or computer engineering with least five years working experience in the software engineering field; An Honours or Masters degree in electronic or computer engineering will be advantageous. The following training, knowledge, and experience are required: Proficiency in and/or adaptability in the following Programming Languages: C, C++ and Python; Excellent working knowledge of software development on Windows, Linux operating systems and real-time operating system environments; The following training, knowledge, and experience will be advantageous: Defence industry software development experience; Detailed understanding of RCTA/DO-178B/C software development process; Embedded software development of control systems; Excellent technical/research skills in the software development fields; Project Management skills; Ability to perform System Engineering functions; Ability to tailor System Engineering processes based on client requirements or a higher-level specification; Ability to work well under pressure and establish good working relationships with both internal and external clients.