GTS is working with a company who designs and manufactures EV charging hardware and is building out the software that runs it. They are looking for a Low-Level Embedded Software Engineer to take ownership of on-device software, from the hardware interfaces up to the secure remote monitoring of chargers in the field.
This is a hands-on role for an engineer who enjoys having a stake and a say across the whole software pipeline, from design through to build and deployment, in a fast-moving environment where requirements evolve quickly.
About the role
You will write and deploy software that runs directly on EV charging hardware, working alongside the wider engineering team so that software and hardware integrate cleanly. A core part of the brief is designing on-device capabilities that let deployed chargers be controlled, interrogated, and debugged remotely.
Key responsibilities
-
Building and deploying software for Embedded Linux devices using frameworks such as Yocto and Buildroot
-
Working with embedded and industrial hardware protocols and interfaces, including RS485, Modbus, and CAN, for communication between internal and external components
-
Designing and implementing on-device software for remote control, interrogation, and debugging of deployed chargers, including secure diagnostics interfaces, a telemetry logging agent, and command execution pathways
-
Integrating closely with the EV charging hardware alongside the rest of the engineering team
-
Promoting and practising sound software development principles, including version control, testing, CI, and documentation
What we are looking for
-
A working understanding of C/C++, with experience building and deploying software for Embedded Linux devices (for example Yocto or Buildroot)
-
Familiarity with embedded and industrial hardware protocols such as RS485, Modbus, and CAN
-
Awareness of low-level charging standards such as CCS (Combined Charging System) and ISO 15118, which govern the physical and data link layers of the charging process
-
Strong collaboration and communication skills, with the ability to work effectively across cross-functional teams
-
A willingness to adapt to and help shape changing project requirements
-
A generalist mindset, with genuine interest in the full development pipeline from design to deployment
Desirable
-
A willingness to use or learn a modern language such as Rust or Go for specific embedded applications or tooling