Job Summary
Conceptualise, design, code, debug, and perform development activities in accordance with designated standards and procedures to meet specific project requirements.
Essential Job Duties And Responsibilities
- Use C++ and modern programming technologies to provide creative, thorough, and practical solutions to a wide range of technical problems.
- Analyse and contribute to system and subsystem requirements specifications and design definitions.
- Design, develop, and test applications and programs to support the company's telecom and backend systems.
- Follow established quality standards and internal engineering procedures including coding, unit testing, Test-Driven Development (TDD), peer reviews, and software configuration control.
- Complete high- and low-level detailed software design specifications, storyboards, and interface specifications.
- Provide support through the full product lifecycle : conception, delivery, problem-solving, defect maintenance, and customer support (including occasional out-of-hours support).
- Keep up to date with improvements and developments in software engineering, supporting continuous improvement.
- Comply with company policies including code of conduct, quality, security, and occupational health, safety and environmental standards.
Minimum Job Requirements
Education and Qualifications
Essential : Bachelor's in Computer Science, Electrical Engineering, or equivalent professional experience.Desirable :Master's degree in Computer Science or related discipline.Certification in a relevant programming language or framework.Certified Scrum Master.Essential
Skills, Knowledge and Experience
Strong C++ software engineering experience with a proven track record in specification, design, and development.Demonstrable experience of defining test plans and test data requirements.Strong problem-solving skills with the ability to debug and resolve complex issues.Experience with object-oriented design (e.g. UML) and implementation, along with design patterns.Ability to contribute to application / system architecture development.Ability to build reusable code and libraries with strong documentation practices.Experience in Automated Testing (Google Test, VSTest), Test-Driven Development (TDD), Continuous Integration, SOLID and Clean Code principles.CI / CD tools such as GIT and Jenkins.Agile experience (Scrum / Kanban).Experience collaborating with test teams to optimise application / system performance.Desirable
Familiarity with industry-specific products or telecom systems.Experience with BitBucket, Conan, DOORS, TestRail, JIRA.C++ Backend / Systems Development Experience
Strong C++ development background.Delivered highly functional, performance-driven, user-friendly applications.Multi-threaded application development.REST, JSON & web services integration.Crash reporting solutions.Debugging complex systems (Linux or distributed environments).Familiarity with Linux development tools (CLion, Eclipse).Understanding Linux-specific concepts and deployment (e.g., RPM, installers).Desirable
Experience in other languages : C#, Java, Python, JavaScript, XML.Memory and disk I / O optimisation.Cryptography knowledge.Experience building simulators / test harnesses.Valgrind or similar tools.NFC / smart card comms exposure (a plus, not required).Personal Qualities
Team player, able to collaborate cross-functionally.Strong communication skills.Organised, able to handle multiple projects.Detail-oriented, diligent, and problem-solving mindset.Self-motivated, able to work independently.Potential for advancement.Skills : - C++ and Test driven development (TDD)
Skills Required
Design Patterns, Automated Testing, Eclipse, Json, Continuous Integration, Jenkins, Git, Rest, Uml, Agile, Scrum, Kanban