← All openings

Senior Software Engineer / Technical Lead, C++ Middleware & Interfaces

Summary:
Lead the technical delivery of a customised C++ middleware solution in Singapore. You will turn customer and system requirements into a robust software architecture, run day-to-day development, and ensure the interfaces delivered are reliable, testable and maintainable. The role is hands-on and continues into development after the design phase.

Responsibilities:
  • Lead the design, development, integration and verification of customised C++ middleware and software interfaces.
  • Act as technical focal point for the software work package, coordinating tasks, priorities, estimates, risks and milestones.
  • Analyse customer, system, interface-control and operational requirements, and derive software requirements and acceptance criteria.
  • Define the middleware architecture: interface abstractions, data models, message formats, protocol handling, error handling, logging, configuration and service lifecycle.
  • Build C++ components for inter-system communications, data translation, protocol conversion, message routing and interface monitoring.
  • Resolve technical ambiguities and integration issues with customers, internal teams and third-party suppliers.
  • Establish software engineering practices: coding standards, branching strategy, code reviews, build management, unit testing, static analysis and version control.
  • Plan and supervise the work of a Junior Software Engineer, providing technical guidance, code reviews and mentoring.
  • Produce design documents, interface descriptions, test procedures, release notes, installation guides and technical reports.
  • Define and run unit, integration, system and acceptance tests, and support defect investigation and root-cause analysis.
  • Support installation, deployment, commissioning, customer demonstrations, site integration and post-delivery defect resolution.
  • Identify technical, schedule, cybersecurity, obsolescence and integration risks, and propose mitigations.
  • Ensure compliance with customer requirements, project processes, quality procedures and cybersecurity expectations.

Qualifications/Requirements:

Required

  • Degree in Computer Science, Computer Engineering, Electrical/Electronic Engineering or a related discipline.
  • 5+ years of professional software development, with substantial C++ experience (modern C++, ideally C++11 or later).
  • Proven delivery of 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.
  • Linux development experience: command-line troubleshooting, process/service management, file permissions, networking tools and log analysis.
  • Git and structured configuration management.
  • 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, including technical documentation and direct customer engagement.


Preferred

  • TCP/IP, UDP, multicast, serial communications, REST APIs, RPC, publish-subscribe or message-oriented middleware.
  • Data formats such as JSON, XML, YAML, CSV, Protocol Buffers, ASN.1 or binary message formats.
  • CMake, Make, Conan, vcpkg, Docker, CI/CD pipelines or automated build/test environments.
  • Cybersecurity practices: 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.
Apply for this role ↗