Enable job alerts via email!

Embedded Firmware / Software Engineer

Mk-Aerospace

Cape Town

On-site

ZAR 500 000 - 700 000

Full time

10 days ago

Generate a tailored resume in minutes

Land an interview and earn more. Learn more

Job summary

A leading aerospace engineering company in Cape Town is seeking an experienced Software Engineer to develop software for embedded systems. The role requires a strong background in C programming and embedded software development, with responsibilities including maintaining firmware and ensuring compliance with standards. The ideal candidate has a BSc/BEng and at least three years of experience in the field. This position offers the opportunity to work in a collaborative environment focused on innovative aerospace solutions.

Qualifications

  • Minimum 3 years of work experience with embedded software development.
  • Good understanding of the C programming language.
  • Experience in developing software for real-time systems.
  • Ability to read and understand electronic design schematics.

Responsibilities

  • Develop software for embedded systems and maintain existing firmware code.
  • Ensure software complies with coding and development standards.
  • Write and maintain unit tests for embedded firmware code.
  • Document software designs and testing results.

Skills

C programming language
Embedded software development
Unit testing
Version control using git
Debugging skills
Real-time systems
Communication interfaces

Education

BSc/BEng in Computer Science or related field

Tools

Eclipse IDE
Qt IDE
Doxygen
Git
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- 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.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.