Responsibilities
- Develop, maintain and troubleshoot C/C++ applications for Front Office devices and embedded platforms.
- Analyse software behaviour and investigate issues affecting device performance, functionality and service availability.
- Support the integration of hardware devices and peripherals, including POS terminals, NFC devices, receipt printers, Bluetooth devices and other field equipment.
- Design, implement and maintain software interfaces using communication technologies such as REST APIs, MQTT and WebSockets.
- Collaborate with hardware and systems engineering teams to validate hardware-software interactions and device integration.
- Participate in software testing activities, including unit testing, integration testing and defect resolution.
- Contribute to software version control, build management and deployment processes using modern development practices.
- Support production environments by investigating incidents, implementing fixes and contributing to continuous improvement initiatives.
Requirements
- Minimum 2 years of experience in software development using C/C++.
- Experience working with hardware-connected applications and embedded or device-level software.
- Strong knowledge of modern C++ development, including C+ and C+ standards.
- Experience integrating and supporting hardware devices such as POS terminals, NFC readers, receipt printers and Bluetooth peripherals.
- Knowledge of REST APIs, MQTT and WebSocket communications.
- Experience using Git or similar version control systems.
- Experience working with Embedded Linux and/or Windows-based systems.
- Familiarity with CMake and modern software build processes.
- Strong analytical and troubleshooting skills.
- Desirable
- Experience within Fare Collection Systems, transport or ticketing environments.
- Knowledge of Jira and Agile development methodologies.
- Experience with CI/CD tools and practices, including Jenkins, Docker and Kubernetes.
- Experience with unit and integration testing frameworks such as Google Test and Mockito.
- Knowledge of software design patterns and Clean Code principles.
- Experience developing applications in Windows environments using Visual Studio or Visual Studio Code.
- Experience supporting software deployments in production environments.
Core Competencies
Demonstrates expertise in C/C++ application development for embedded platforms and hardware integration, with strong analytical and troubleshooting skills. Proficient in modern development practices, including version control and software testing methodologies.