Junior Software Engineer (C++ Middleware & Interfaces)
adomita technologies pte. ltd.- Posted 5 hours ago
- Be among the first 10 applicants
Job Description
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.
