About Capgemini
Capgemini is an AI-powered global business and technology transformation partner, delivering tangible business value. We imagine the future of organizations and make it real with AI, technology and people. With our strong heritage of nearly 60 years, we are a responsible and diverse group of over 420,000 team members in more than 50 countries. We deliver end-to-end services and solutions with our deep industry expertise and strong partner ecosystem, leveraging our capabilities across strategy, technology, design, engineering and business operations. The Group reported 2025 global revenues of €22.5 billion.
About the Role
Lead the technical delivery of a customised C++ middleware solution for a customer environment. The role is responsible for translating customer and system requirements into a robust software architecture, managing day-to-day software-development activities, and ensuring the delivered interfaces are reliable, testable, maintainable, and suitable for integration into the customer's wider system. This role shall also participate in the software development after the design phase.
Responsibilities
- Lead the design, development, integration, and verification of customised middleware and software interfaces in C++.
- Act as the technical focal point for the software work package, coordinating software tasks, priorities, estimates, risks, and delivery milestones.
- Analyse customer, system, interface-control, and operational requirements; derive clear software requirements and acceptance criteria.
- Define the middleware architecture, including interface abstractions, data models, message formats, protocol handling, error handling, logging, configuration, and service lifecycle management.
- Design and implement C++ components for inter-system communications, data translation, protocol conversion, message routing, and interface monitoring.
- Review interface specifications and work with customers, internal engineering teams, and third-party suppliers to resolve technical ambiguities and integration issues.
- Establish and maintain software engineering practices, including coding standards, branching strategy, code reviews, build management, unit testing, static analysis, and version control.
- Plan and supervise the Junior Software Engineer's work, provide technical guidance, conduct code reviews, and support capability development.
- Develop software design documents, interface descriptions, test procedures, release notes, installation guides, and technical reports.
- Define and execute unit, integration, system, and acceptance testing; investigate defects and support root-cause analysis.
- Support software installation, deployment, commissioning, customer demonstrations, site integration, and post-delivery defect resolution where required.
- Identify technical, schedule, cybersecurity, obsolescence, and integration risks, and propose practical mitigation actions.
- Ensure developed software complies with applicable customer requirements, project processes, quality procedures, and cybersecurity expectations.
Requirements
- Degree in Computer Science, Computer Engineering, Electrical/Electronic Engineering, or a related technical discipline.
- At least 5 years of professional software-development experience, including substantial experience in C++.
- Demonstrated experience delivering production-quality C++ software for distributed, embedded, industrial, maritime, defence, communications, automation, or other integration-heavy systems.
- Experience designing middleware, software interfaces, communications gateways, protocol adapters, or data-integration solutions.
- Strong understanding of modern C++ principles and practices, ideally C++11 or later.
- Experience with Linux-based development environments, including command-line troubleshooting, process/service management, file permissions, networking tools, and log analysis.
- Experience with Git and structured software configuration management.
- Experience with software debugging, profiling, automated testing, and defect investigation.
- Ability to interpret interface control documents, protocol specifications, data dictionaries, and system requirements.
- Strong written and verbal communication skills, including the ability to produce clear technical documentation and engage directly with customers and multidisciplinary engineering teams.
Preferred Qualifications and Experience
- Experience with TCP/IP, UDP, multicast, serial communications, REST APIs, RPC, publish-subscribe architectures, or message-oriented middleware.
- Experience with data formats such as JSON, XML, YAML, CSV, Protocol Buffers, ASN.1, or binary message formats.
- Experience with CMake, Make, Conan, vcpkg, Docker, CI/CD pipelines, or automated build/test environments.
- Familiarity with cybersecurity practices for software and networked systems, including secure coding, authentication, access control, certificate handling, vulnerability management, and audit logging.