Track This Job
Add this job to your tracking list to:
- Monitor application status and updates
- Change status (Applied, Interview, Offer, etc.)
- Add personal notes and comments
- Set reminders for follow-ups
- Track your entire application journey
Save This Job
Add this job to your saved collection to:
- Access easily from your saved jobs dashboard
- Review job details later without searching again
- Compare with other saved opportunities
- Keep a collection of interesting positions
- Receive notifications about saved jobs before they expire
AI-Powered Job Summary
Get a concise overview of key job requirements, responsibilities, and qualifications in seconds.
Pro Tip: Use this feature to quickly decide if a job matches your skills before reading the full description.
The senior software engineer should be an experienced professional in the field of software development. Be able to perform software system and subsystem design, coding, evaluation and testing and reporting, as well as maintaining and fixing existing software. Exposure to classification and certification of software.
NOTE: For this job description, the term “software” implies both PC-based and/or embedded software.
Key Accountabilities
Coding proficiency:
- Must show high level of proficiency and independence in Embedded C, understand the language’s complexities, and be able to cater for memory management, pointers, interrupt handling, multi-threading & multi-processing, etc. Proficient at various communication protocols. Eager to learn and share knowledge.
- Knowledgeable of, and experienced in, the application of technical specification practices, especially considering international standards, practices, and certification, e.g. MIL-STDs, IEC/IEEE standards, RTCA standards (e.g.
- DO-178C), Unified Modelling Language (UML), System Modelling Language (SysML), etc.
- Timeously deliver working code that satisfies requirements, and which is in compliance with company software quality and coding standards, configuration management practices, etc. Perform exhaustive unit testing that minimises occurrence of defects.
- Provide leadership in the generation and review of engineering software models and documentation. Participate in, and be willing to organise and chair design reviews, and provide constructive inputs.
- Where possible, be able to provide guidance to juniors regarding specification practices, coding and coding standards, testing and verification practices and methods, software integration and configuration management, etc.
- Assist by upskilling juniors in their knowledge, practices and methods.
- Assist team members to implement best practice processes.
- Supervise and assist the quality of work of junior staff.
- Mentor and train junior personnel.
Software System Engineering:
Implement sound software system engineering practices. Develop Software Requirement Specifications, Software Design Documents and Interface Control Specifications, etc., utilising a model-based approach and tools, with (amongst others) static and behavioural software models.
Support and maintain existing software:
- Investigate and comprehend the structure and functional execution and flow of existing software
- Modify existing software to address new requirements
- Investigate and fix reported defects
- Comply with the structure and logic of existing software as may be required
- Software re-factoring, where applicable, and with approval of design authority: o Improve the structure and logic of the existing software o Re-structure software with the aim of re-use
- Update modified designs and specifications, as required
- Ensure integrity of traceability to/from/between higher level requirements and designs
General Competencies
The skill and ability to provide technical leadership.
Communication skill level that is clear, ensure cohesion and advance enthusiasm amongst team members, management and customers.
Demonstrate the ability to take ownership and responsibility for short to medium term operations.
Passionate about software development and quality, together with not only a hunger for knowledge and an aptitude to learn, but also to pass on skills.
Specific job competencies
Demonstrate skill and experience regarding software principles, understanding of requirements, designing and documenting
(sub)system(s), coding and testing.
Knowledge of best practices, engineering standards and development methodologies applicable in the defence industry.
Understanding of the systems engineering process
(Requirements, analysis, design, integration, verification, certification and configuration management.)
Demonstrate the skill to be able to investigate and comprehend existing software structures and functional execution and flow
Knowledge/Qualification
Minimum:
- Electronic/Software Eng. Degree (Bachelor).
- Knowledge of software subsystem design with application in the precision guided munition domain.
- Electronic/Software Eng. Degree (Honours or Masters)
- 5+ years’ experience in software subsystem design with application in the precision guided munition domain
Minimum:
- 8 years’ experience in the software engineering domain.
- At least 3 years’ experience in the certification/classification methodology of software.
- 8+ years’ experience in the software engineering domain
- 5+ years’ experience in the certification/classification methodology of software