AREA – City, Pinelands, Newlands, Observatory, Constantia, Rondebosch, Tokai, Westlake, Noordhoek, Fishhook, Glen Cairne, Simonstown, Kommetjie, Landsdowne, Plumstead, Hout bay, and Wynberg. Due to traffic, if not, relocation would be ideal.
Report to – Software Engineer
Contribute to the design, development and maintenance of software systems for engineering, under the guidance of senior software engineers. This includes automated test systems, reporting systems, PC-to-hardware communications and hardware programming tools for aeronautical products. The role also supports the team's CI/CD, dashboard and server infrastructure.
MUST HAVE: -
- Matric
- BSc in Computer Science, Computer or Electronic Engineering, or a related qualification.
- Solid understanding of software development fundamentals: object-oriented design, data structures, algorithms and unit testing.
- Proficiency in Python or C++, including debugging in an IDE (breakpoints, variable inspection, call stacks, stepping through code).
- Working knowledge of SQL.
- Willingness to learn complex hardware systems and translate engineering test specifications into automated test scripts.
- A team player who is self-motivated, with good verbal and written communication skills.
Advantageous
- Experience with Delphi.
- Familiarity with Git, CI/CD tools and Windows server administration.
- Exposure to embedded or electronic systems.
Job Responsibilities
- Develop and maintain PC-based applications for automated testing, reporting, PC-to-hardware communications and hardware programming, based on hardware communication specifications and client requirements. Apply industry-standard design patterns, testing methodologies, and appropriate data structures and algorithms so that software is efficient, scalable and maintainable.
- Write and maintain production and verification test scripts for aeronautical products, using the in-house test tool, based on specifications from design and system engineers.
- Assist with debugging production test failures by analyzing automated test logs and extracting results using SQL.
- Follow formal software life cycle and release processes, producing documentation as required by the configuration department.
- Maintain and develop CI/CD pipelines and scripts in Jenkins and GitLab.
- Maintain and develop dashboards in Grafana.
- Assist with setting up and administering backend servers.
- Assist with evaluating new technologies, such as Docker for containerized build and test environments.