About the role
We're looking for an Embedded Software & Controls Engineerto develop machine-control software for heavy equipment — from low-level drivers and embedded Linux to application-level control logic. The role combines C/C++ development on microcontrollers, embedded Linux/connectivity work, and model-based control design in MATLAB/Simulink.🚜
🧑🏻💻 Responsibilities:
* Develop and maintain embedded C/C++ software for microcontrollers, including bare-metal firmware, hardware drivers, and board support packages (BSPs).
* Develop and debug embedded Linux on ARM-based platforms (e.g., Jetson): systemd, journalctl, device tree basics.
* Configure and troubleshoot on-machine networking and connectivity: Wi-Fi, Network Manager, LTE/5G/SIM provisioning, Modem Manager, and CAN bus.
* Build and cross-compile containerized software for embedded targets (Docker: base images, layers, Compose), and script in Python/Bash for tooling and diagnostics.
* Translate system requirements into control models and software designs; design, simulate, and verify control logic in MATLAB/Simulink, then implement and integrate it in embedded C/C++.
* Develop machine-control applications interfacing with joysticks, keypads, sensors, and electrohydraulic systems, including hydrostatic pump/valve control and power, cooling, and fan management.
* Debug and validate software across the full stack — hardware interfaces, drivers, connectivity, and application behavior on the machine.
* Work within an Agile process, maintaining requirements traceability and documentation (e.g., Polarion), and contribute to code reviews, version control, and CI/CD (GitHub, Jenkins, GCC toolchains).
🤝 If you have:
* Hands-on C/C++ embedded development experience, including bare-metal microcontroller systems.
* Solid embedded Linux experience: systemd, journalctl, device tree basics, and general debugging on ARM/Jetson platforms.
* Experience with on-device networking and connectivity: Network Manager, Wi-Fi, LTE/5G/SIM, Modem Manager, and CAN.
* Experience with Docker in embedded/edge contexts (base containers, layers, cross-compilation, Compose) and scripting in Python/Bash.
* Understanding of control systems and hardware/software interfaces (sensors, actuators, operator inputs).
* Strong debugging skills across firmware, electronics, connectivity, and machine behavior.
* Solid software engineering practices: unit testing, Git workflows, code reviews, and continuous integration.
* Comfortable working cross-discipline in an Agile team, with availability to travel to the US.
🦾It’s a major plus:
* Experience with MATLAB and Simulink for model-based control development, simulation, and verification.
* Experience with heavy machinery, mobile equipment, or industrial machine-control systems.
* Familiarity with electrohydraulics, hydrostatic drives, pump/valve control, power management, or cooling systems.
* Experience spanning both low-level embedded development and application-level controls.
* Familiarity with Jenkins, GitHub, and GCC toolchains, and PLM/documentation tools such as Windchill.
Originally posted on Himalayas