Junior Software Engineer (C++ Middleware & Interfaces)

ADOMITA TECHNOLOGIES PTE. LTD.Singaporemycareersfuturepublished 11/04/2026
Must-have:PythonGitDockerQA/TestCI/CDSecuritySeniorLead

About the role

Support the development, testing, integration, and maintenance of a customised C++ middleware solution and its associated software interfaces. The role provides hands-on implementation capability within a supervised engineering environment, with opportunities to develop expertise in C++, system integration, communications protocols, testing, and software configuration management.

Responsibilities

  • Develop and maintain C++ software modules under the guidance of the Senior Software Engineer / Technical Lead.
  • Implement middleware functions, software adapters, protocol handlers, message parsers, data-conversion logic, configuration functions, and diagnostic features.
  • Support the integration of software interfaces between the middleware solution and customer, third-party, or internal systems.
  • Write clean, maintainable, and well-documented C++ code in accordance with project coding standards and software-development processes.
  • Develop unit tests and support integration, system, and acceptance testing activities.
  • Investigate software defects, analyse logs and diagnostic data, reproduce reported issues, and support corrective actions.
  • Prepare and maintain technical artefacts such as source-code documentation, test records, configuration files, software release notes, and installation instructions.
  • Participate in code reviews and incorporate feedback from the Senior Software Engineer and project team.
  • Use Git and approved configuration-management processes to manage source code, branches, baselines, and software releases.
  • Support build, deployment, and test-environment setup activities, including Linux-based development and integration environments.
  • Assist with customer demonstrations, factory acceptance testing, site integration, commissioning, and troubleshooting when required.
  • Participate in technical discussions with system engineers and other disciplines to understand interface requirements, expected data flows, and integration constraints.
  • Maintain awareness of software quality, cybersecurity, and configuration-control requirements relevant to the project.

Requirements

  • Degree or diploma in Computer Science, Computer Engineering, Electrical/Electronic Engineering, or a related discipline.
  • 2 to 3 years of relevant software-development experience.
  • Good foundation in C++ programming, including object-oriented design, memory management, debugging, and standard data structures.
  • Basic understanding of software-development lifecycle practices, including requirements, implementation, testing, defect tracking, and version control.
  • Familiarity with Git or another source-control system.
  • Familiarity with Linux or willingness to develop competence in a Linux-based software-development environment.
  • Ability to read technical specifications, follow structured development tasks, and document work clearly.
  • Strong analytical, problem-solving, and troubleshooting skills.
  • Good teamwork and communication skills

Preferred Qualifications and Experience:

  • Experience in C++, Linux, embedded systems, networking, middleware, or systems integration.
  • Familiarity with TCP/IP networking, sockets, REST APIs, serial communications, or basic client-server architectures.
  • Exposure to JSON, XML, YAML, CSV, or other structured data formats.
  • Exposure to CMake, Makefiles, automated tests, CI/CD, Docker, or scripting using Python or Bash.
  • Familiarity with unit-test frameworks for C++.
  • Interest in communications systems, industrial automation, maritime systems, defence systems, IoT, robotics, or real-time software environments.