Job Title: Senior Software Engineer (C++)
Job Description:
- Design, develop and test software programs.
- Analyse and contribute to system and subsystem requirements specifications and design definitions.
- Complete high- and low-level detailed software design specifications, storyboards and interface specifications.
- Provide support of products from conception through to product delivery including problem solving and defect maintenance.
- Prepare reports, manuals, procedures and status reports.
- Provide training and guidance to other team members.
Education and Qualifications:
- Bachelor of Science degree in computer science, electrical engineering, or related field or equivalent professional experience or combination of both.
Skills, Knowledge and Experience:
- Experience in Software Engineering with a proven track record of specification, design and development.
- Demonstrable experience of defining test plans and test data requirements.
- An effective problem solver with the ability to understand and resolve complex issues.
- Experience in troubleshooting and debugging applications.
- Experience of Object-Oriented Design and implementation, along with Software Design patterns.
- Ability to contribute to the development of the architecture for applications.
- Experience of maintaining and improving coding standards.
- Experience of software best practices such as Automated Testing (Google Test), Continuous Integration, Test Driven Development, SOLID and Clean Code principles.
- Scrum or Kanban experience in Agile teams.
- GIT, Jenkins, Bitbucket (or similar) and Conan experience.
- Experience using DOORS, Test Rail and Jira.
- Experience working with test teams to optimise application performance.
Personal Qualities:
- Ability to work as part of a team towards individual and shared goals; a team player in a cross-functional environment.
- Excellent written and verbal communication skills with the ability to communicate effectively at all levels.
- Demonstrates excellent interpersonal skills with a willingness to share knowledge, coach and collaborate effectively with individuals and other departments.
- Diligent, with attention to detail. Able to problem solve and find effective and timely resolutions.
- Self-motivated with the ability to work on own initiatives and under pressure.
C++ development experience requirements:
- Proficient Modern C++ experience (minimum 11, ideally 14 and later).
- Experience in developing multi-threaded applications.
- Experience of debugging on target hardware.
- Experience in platform development and a good understanding of Linux