Software Engineer
Core
Develop, maintain, and troubleshoot embedded C/C++ applications for Front Office devices (turnstiles, validators, ticket machines) supporting London's public transport ticketing system.
Role type
Embedded Software Engineer
Builds
Software for hardware-connected devices including POS terminals, NFC readers, and receipt printers
Domain
Public transportation ticketing systems / Embedded systems
Deliverable
production ML models | product features | dashboards & analysis | research | client delivery | infrastructure | physical/clinical work
Required skills
C/C++ (C++11/14), Embedded Linux/Windows, REST APIs, MQTT, WebSockets, Git, CMake, Hardware integration, Troubleshooting
Preferred skills
CI/CD (Jenkins, Docker, Kubernetes), Unit testing (Google Test, Mockito), Agile/Jira, Clean Code principles, Visual Studio
Technologies
CMake, Git, Jenkins, Docker, Kubernetes, Google Test, Mockito, Visual Studio, REST, MQTT, WebSockets
Responsibilities
Develop and maintain C/C++ applications for embedded devices; Analyze software behavior and troubleshoot device-level issues; Integrate hardware devices and peripherals; Design and maintain software interfaces; Collaborate on hardware-software validation; Participate in software testing and defect resolution.
Seniority
Mid-level, hands-on IC