About the position
An opportunity exists for a dynamic and driven professional who enjoys modernising legacy systems to take up the role of Software Engineer, working alongside an Embedded Systems Engineer to deliver robust embedded software solutions for traffic monitoring and control systems.
This role is the dedicated software counterpart to the Embedded Systems Engineer — you will work with an existing Delphi codebase while helping to evaluate and drive the migration to modern languages and toolchains. If you have a passion for taking legacy codebases and transforming them into modern, maintainable systems, this role is for you.
You will work shoulder-to-shoulder with the hardware and embedded team, translating requirements into reliable, maintainable software, and contributing to the full product lifecycle from design through to field deployment.
Responsibilities Software Development
- Design, develop, document, implement and maintain software components.
- Work with the existing Delphi codebase while evaluating and contributing to the selection of modern languages and toolchains for future development.
- Work with compiler toolchains to manage build pipelines and automated tests.
- Write clean, efficient, well-documented code.
- Maintain and refactor legacy Delphi codebases as required during the transition period.
Hardware-Software Integration
- Collaborate closely with the Embedded Systems Engineer to understand hardware designs, constraints and data outputs.
- Participate in software reviews, including reviews of changes to embedded software.
- Participate in hardware-software integration testing to ensure correct end-to-end functionality.
System Design & Architecture
- Participate critically in review of system requirements and translate these into detailed software specifications.
- Design software architectures that meet performance, memory, and reliability constraints.
- Apply sound object-oriented design and systems engineering principles.
Testing & Validation
- Develop and execute unit tests, integration tests, and system-level test plans.
- Apply test-driven development practices and contribute to continuous release processes.
- Identify and resolve defects using appropriate debugging and analysis tools.
Documentation & Compliance
- Write and maintain clear documentation including design specifications, technical notes, and user guides.
- Ensure software quality and traceability in line with internal standards and best practices.
Research & Innovation
- Stay current on relevant technologies, tools, and trends in software for embedded and industrial systems.
- Contribute ideas to improve software performance, reduce technical debt, and modernise toolchains.
RequirementsQualifications and Experience
- Tertiary qualification, preferably in Computer Science or a related engineering discipline.
- 8 or more years’ professional software development experience.
- Working knowledge of Delphi (Object Pascal), or demonstrated ability to read and maintain existing Delphi codebases.
- Experience with C and/or other modern programming languages (C++, Rust, Python, Go, or similar) is advantageous.
- Working knowledge of AI-assisted coding tools (e.g. GitHub Copilot, Cursor, Claude) is advantageous, particularly for accelerating legacy code migration.
- Familiarity with real-time operating systems (RTOS) and multithreaded software design is advantageous.
- Familiarity with version control systems and software configuration management.
- Valid South African driver’s licence.
Competencies
- Sound knowledge of embedded software development principles, including writing, debugging and optimising low-level code.
- Familiarity with Delphi and the ability to work within and help migrate existing Delphi codebases to modern languages.
- Ability to read and work with embedded system interfaces, data structures, and hardware documentation.
- Solid understanding of software configuration control and version management.
- Knowledge of object-oriented design, test-driven development, and continuous release approaches.
- Able to work independently and manage own tasks within a small, technical team.
- Good communication skills — able to engage clearly with hardware engineers and non-technical stakeholders.
- Competent with Windows OS and Microsoft Office (Word, Excel, PowerPoint, Outlook).
- Familiarity with Linux environments and scripting languages (Python, Bash) is advantageous.
- Working knowledge of AI-assisted coding tools (e.g. GitHub Copilot, Cursor, Claude) to accelerate development and support codebase migrations is advantageous.
- Understanding of the Systems Engineering approach to software development.
Desired Skills:
- python
- rust
- scripting
- C
- Delphi
- Migration
Desired Qualification Level:
About The Employer: