Senior Software Engineer / Technical Lead (C++ Middleware & Interfaces)
ADOMITA TECHNOLOGIES PTE. LTD.Role Description & Requirements
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.
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.
Ready to submit your application?
You will be redirected directly to ADOMITA TECHNOLOGIES PTE. LTD.'s official custom page.
Want alerts for similar roles? Upload your resume to turn on your 24/7 job radar for roles like Senior Software Engineer / Technical Lead (C++ Middleware & Interfaces).