Talent.com
Embedded Firmware / Software Engineer

Embedded Firmware / Software Engineer

MK-AerospaceCape Town, Western Cape, South Africa
6 days ago
Job description

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.

About the Role

  • 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

Execution of the duties and responsibilities pertaining to the position demands the following experience, skills and knowledge :

  • 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.
  • Additional Skills (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.
  • #J-18808-Ljbffr

    Create a job alert for this search

    Software Engineer • Cape Town, Western Cape, South Africa