The Company is an aerospace engineering and consulting services company with an extensive network of experts and industrial partners. Our small but highly qualified team of professionals develops cutting-edge solutions in aerospace, propulsion and systems engineering.
Our core capabilities are Design, Simulation, Assembly, Integration and Testing. We are looking to expand our engineering team, more specifically our Avionics department, with an experienced, practical and enthusiastic Software Engineer who is also a team player.
This exciting but challenging opportunity involves software development for our embedded systems, which requires thorough software testing and software performance evaluation in order to satisfy system requirements. Additional software development may also involve desktop application development for ground control systems.
Responsibilities
The main duties to be performed by the successful candidate will be:
Create and maintain a framework and development environment for different projects.
Help manage software development environment configurations.
Maintain git code repositories for software version control.
Take responsibility for software versioning, releasing and baselining procedures.
Help manage DO-178 compliance for the software life cycle development.
Maintain existing embedded firmware code for aerospace and propulsion systems.
Write new embedded firmware code for aerospace and propulsion systems, including new projects.
Maintain/write embedded low-level drivers.
Take responsibility to ensure that software complies to coding and development standards.
Write and maintain unit tests for embedded firmware code.
Create software testing plans.
Compile and execute software test procedures.
Document software designs and the results of software verification testing.
Generate conceptual designs (software architecture) from system requirements and trace the design through a full development cycle to final integration and testing.
Support testing of avionics systems and subsystems for propulsion products in a multi-disciplinary team.
Minor scripting tasks to automate workflows or support subsystem testing.
Requirements
The following minimum qualifications, experience, skills and knowledge will be required:
Minimum BSc./BEng. in Computer Science, Electronic Engineering, Mechatronic Engineering or any other bachelor's degree with software development as a prominent aspect of the required coursework.
Minimum 3 years of work experience with embedded software development. Less experienced candidates with exceptional academic records will still be considered.
Good understanding of the C programming language.
Familiarity with software coding standards for the C language, such as MISRA.
Familiarity with git-based version control interfaces to a code repository.
Software development and debugging experience within a Windows development environment.
Unit/Integration testing and debugging experience.
Experience in developing and debugging software for soft (or hard) real-time systems.
Ability to read and understand electronic design schematics.
Knowledge of communication interfaces (Serial, USB, SPI, I2C, CAN) for interfacing with external systems or sensors.
Working autonomously as an individual, or in a small team, to provide robust and working solutions to high level system requirements
In addition to the above, the following will be advantageous:
MSc./MEng. in Computer Science or Electronics Engineering, or any other specialisation that is related to software development.
Experience with Python programming language.
Experience with C++ programming language.
Experience working with documentation frameworks (Doxygen or Sphinx).
Experience with specific unit/integration testing framework, such as: Ceedling or PyTest.
Experience with Eclipse IDE.
Experience with Qt IDE GUI development framework.
Experience with the creation of a make build environment, or use of make files.
Experience with the development (and development toolchain) for ARM embedded processors.
Experience with the STM32 range of microcontrollers.
(A)synchronous programming familiarity.
Experience in an avionics / electronic engineering environment (military, aerospace and/or commercial).
Knowledge of and experience in avionics software certification and/or qualification
Candidate Attributes
The candidate must be able to work well in a team as well as being self-motivated to perform as an individual. The candidate should be able to work in a fast-paced development environment while maintaining the quality of work output. He / she should possess a strong work ethic, striving for perfection - MK Aerospace is dedicated to delivering world-class elegant solutions to the market and can only achieve this if all team members adhere to this ethos.
Special working conditions
Overseas travel to client sites could be required from time-to-time.
Job Type: Full-time
Education:
Bachelors (Required)
Experience:
* embedded software development: 3 years (Required)
Beware of fraud agents! do not pay money to get a job
MNCJobs.co.za will not be responsible for any payment made to a third-party. All Terms of Use are applicable.