Junior Software Engineer – C++ Middleware & Interfaces
Summary: We are looking for a Junior Software Engineer to support the development, testing, integration and maintenance of a customised C++ middleware solution and its software interfaces. The role is hands-on and supervised, suited to candidates with up to 3 years of experience (strong fresh graduates considered). Location: Singapore. Full-time. Responsibilities: Develop and maintain C++ modules (protocol handlers, message parsers, adapters, data conversion, configuration and diagnostic functions) under senior guidance Support the integration of interfaces between the middleware and customer, third-party or internal systems Write clean, documented C++ code in line with project coding standards Develop unit tests and support integration, system and acceptance testing Investigate defects: analyse logs, reproduce issues and support corrective actions Manage source code, branches, baselines and releases using Git and approved configuration-management processes Support build, deployment and test-environment setup in Linux-based environments Prepare technical documentation (code documentation, test records, release notes, installation instructions) Participate in code reviews and technical discussions with system engineers to clarify interface requirements and data flows Assist with customer demonstrations, factory acceptance testing, site integration and commissioning when required Maintain awareness of software quality, cybersecurity and configuration-control requirements
Qualifications/Requirements: Degree or diploma in Computer Science, Computer Engineering, Electrical/Electronic Engineering or a related discipline Up to 3 years of software development experience (strong fresh graduates with relevant project experience may be considered) Solid C++ foundation: object-oriented design, memory management, debugging, standard data structures Basic understanding of the SDLC (requirements, implementation, testing, defect tracking, version control) Familiarity with Git or another source-control system Familiarity with Linux, or willingness to develop competence in it Ability to read technical specifications, follow structured tasks and document work clearly Strong analytical, problem-solving and troubleshooting skills; good teamwork and communication