remote
Embedded Software Engineer - Caterpillar
Software Engineer
Embedded Software Engineer crafting reliable firmware for industrial devices using C/C++, RTOS, and hardware interfaces, ensuring high performance and stability in mission‑critical systems.
About the role
Key Responsibilities
- Design, develop, and test firmware for embedded devices and systems.
- Implement real‑time operating system (RTOS) solutions and optimize for performance and reliability.
- Collaborate with hardware engineers to interface software with sensors, actuators, and communication modules.
- Debug and troubleshoot complex software issues using in‑circuit analyzers, logic analyzers, and logging tools.
- Maintain and improve existing codebases, ensuring adherence to coding standards and best practices.
Requirements
- Proficiency in Embedded C and C++ programming.
- Experience with RTOS (e.g., FreeRTOS, VxWorks) and real‑time application development.
- Strong understanding of hardware interfaces such as SPI, I2C, UART, CAN, and Ethernet.
- Hands‑on debugging skills with tools like JTAG, SWD, and logic analyzers.
- Version control experience (Git) and familiarity with CI/CD pipelines for embedded software.