The Embedded software team builds the foundational software that powers next-generation machines and power systems. You will design and implement low-level software for Electronic Control Units (ECUs), related modules, and edge devices-owning drivers, BSPs, bootloaders, and communication stacks that keep our machines safe, connected, and reliable in demanding environments.
What You'll Do
Device Drivers & BSP
Design, implement, and optimize drivers for peripherals (GPIO, SPI, I C, UART, ADC/DAC, PWM, Timers, Watchdog, Flash/NVM).
Bring-up new hardware: bootloaders, memory maps, linker scripts, startup code, and board initialization.
Develop and maintain Board Support Packages (BSP) for MCU/SoC platforms (ARM Cortex-M/A or similar).
Real-Time Software
Build RTOS-based applications (task scheduling, ISR design, queues/semaphores, timing analysis).
Integrate and tune RTOS components (e.g., FreeRTOS, SafeRTOS, QNX, Zephyr, or similar) for deterministic behavior.
Networking & Protocols
Implement, debug, and validate CAN / J1939 / ISO-TP / UDS stacks and application layers.
Develop Ethernet features (L2/L3 basics, UDP/TCP/IP, diagnostics, and time-sensitive networking where applicable).
Support diagnostics, bootloading over CAN/Ethernet, and in-field update infrastructure.
Linux & Platform Integration
Build Linux-based embedded systems (Yocto/Buildroot), kernel configuration, drivers, and user-space daemons.
Integrate middleware and services for telemetry, logging, and OTA where applicable.
Software Quality & Safety
Apply MISRA-C/C++ and static analysis (e.g., Coverity, PC-Lint).
Develop unit/functional tests, and automate regression on benches.
Collaborate with systems, electrical, validation, and manufacturing teams to deliver robust product-grade software.
Tools & Processes
Use oscilloscopes, logic analyzers, CAN analyzers, and protocol tools.
Participate in code reviews, traceability, and documentation aligned to safety and quality standards.
Required Qualifications
Bachelor's or Master's in Electrical/Electronics/Computer Engineering or related field.
3+ years of professional embedded development experience (strong entry level candidates with relevant internships/projects encouraged).
Strong proficiency in C and C++ for embedded targets.
Hands-on experience with CAN (ideally J1939, UDS/ISO 14229, ISO-TP/15765) and Ethernet on embedded platforms.
Solid knowledge of RTOS concepts (tasks, ISRs, scheduling, timing, memory management).
Experience with Linux in embedded contexts (driver basics, kernel/user-space integration, or build systems).
Comfort with microcontroller/SoC internals (interrupts, DMA, clocking, low-power modes, memory maps).
Proficiency with hardware debugging tools (JTAG/SWD, oscilloscopes, logic analyzers, CAN tools).
Version control (Git), build systems (CMake/Make), and CI fundamentals.
Desired / Nice-to-Have
AUTOSAR (Classic) concepts and integration; BSW configuration and debugging.
Bootloaders (CAN/Ethernet/USB), secure boot, and firmware update mechanisms.
Safety or reliability exposure (ISO 26262 concepts, FMEA, defensive design).
Scripting for automation (Python, Bash) and test orchestration (pytest/Robot).
Prior work with off-highway, heavy equipment, industrial or automotive ECUs.
External Skills And Expertise
"1. Experience in the application of data links such as CAN/J1939, Ethernet, TCP/IP
2. Experience working on systems engineering activities for Telematics units, vehicle netwroking using routers/switches/gateways, embedded web server.
3.Strong communication, teamwork and analytical skills
4. Programming languages like C++ and Python are desired
5. Knwoledge on CI/CD systems and software development"