The overall responsibility of the C++ Software Engineer is to design, develop and maintain software applications, working as part of the Global R&D organisation on products targeted towards the Onshore, Offshore and Transportation markets.
Key Responsibilities
- Developing and maintaining C++ application software within Linux environments using Qt framework
- Writing code that is flexible, reusable, efficient and adaptable to changing requirements
- Contributing to software architecture and design decisions
- Writing unit and integration tests; supporting formal verification activities
- Working in a structured environment following safe and secure software development principles
- Reviewing the code of peers with a focus on correctness and maintainability
Skills Required
The successful candidate will:
- Proactively assess and eliminate root cause when faced with technical barriers
- Be a team player, comfortable working in a close-knit team and building strong professional relationships
- Actively support less-experienced team members by helping them with their development, providing guidance and setting a good example
- Take responsibility for any failures in the project and take action to prevent them in the future, embracing and sharing the learning
- Be inquisitive to understand products and customer use cases
- Be able to work independently, proactively making decisions, problem solving and driving issues to a conclusion
- Organise and communicate on own work activities aligned with wider business objectives
- Have strong technical skills and a desire to develop these
- Demonstrate strong technical ability with a commitment to continuous learning
Knowledge & Experience Required
- 3+ years of professional software development experience
- Strong proficiency in C++ with a solid understanding of object-oriented design, memory management, concurrency and SOLID design principles
- Experience developing desktop or cross-platform applications using Qt framework (Qt Widgets and / or QML)
- Good understanding of networking fundamentals, including TCP/IP, UDP and socket programming
- Experience with build systems such as CMake and version control using Git
- Ability to read and contribute to technical specifications and architecture documents
- Experience writing unit and integration tests
- Ability to read, understand and contribute to technical specifications and architecture documentation
- Familiarity with CI/CD pipelines and automated build systems (beneficial)
- Exposure to containerised development environments (Docker) (beneficial)
- Familiarity with Agile software development methodologies (beneficial)
Education & Qualifications
- Degree in Computer Science, Software Engineering or similar background
#J-18808-Ljbffr…
