I
Senior Software Engineer / Technical Lead (C++ Middleware & Interfaces)
I
Senior Software Engineer / Technical Lead (C++ Middleware & Interfaces)
itcan pte. limited- Posted 28 minutes ago
- Be among the first 10 applicants
Job Description
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 andExperience
- 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.
- Experience in regulated, safety-critical, high-availability, maritime, defence, industrial, or customer-acceptance environments.
- Prior experience technically leading a small team or mentoring junior engineers.
- The Junior Software Engineer is effectively guided and contributes independently to defined development work packages.
- Customer and internal stakeholders receive timely, clear technical updates and well-managed issue resolution.
More Info
Key Skills
C++11 or later
Protocol adapters
vcpkg
Conan
CI/CD pipelines
Defect investigation
Middleware software interfaces
Data-integration solutions
Communications gateways
Linux-based development environments
