Embedded Software Engineer (C++ / Linux / BSP)
Location:
Fargo, ND or Des Moines, IA
Client: John Deer
Position Summary
We are seeking an Embedded Software Engineer with strong experience in C++, Linux, and Board Support Package (BSP) development. The ideal candidate will be responsible for developing, integrating, and validating embedded software on target hardware platforms. This role requires hands-on experience bringing up hardware, debugging low-level software, and validating system functionality in a lab environment.
Key Responsibilities
-
Design, develop, and maintain embedded software using C++.
-
Develop, customize, and support Linux BSPs for embedded platforms.
-
Perform board bring-up, hardware/software integration, and platform validation.
-
Test and validate software functionality directly on target hardware.
-
Debug system-level issues involving software, drivers, kernel components, and hardware interfaces.
-
Develop automated and manual test procedures for embedded systems.
-
Work closely with hardware, firmware, and systems engineering teams.
-
Analyze system logs, traces, and performance metrics to identify and resolve issues.
-
Support product releases and ongoing maintenance activities.
Required Qualifications
-
Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or related field.
-
3+ years of experience in embedded software development.
-
Strong programming skills in C++.
-
Experience with Linux-based embedded systems.
-
Hands-on BSP development and customization experience.
-
Experience testing and validating software on physical hardware platforms.
-
Knowledge of device drivers, kernel debugging, and system integration.
-
Familiarity with debugging tools such as GDB, JTAG, logic analyzers, or oscilloscopes.
-
Experience with version control systems such as Git.
-
Strong problem-solving and troubleshooting skills.
Preferred Qualifications
-
Experience with Yocto, Buildroot, or similar embedded Linux build systems.
-
Knowledge of ARM-based processors and SoC architectures.
-
Experience with bootloaders such as U-Boot.
-
Familiarity with CI/CD pipelines and automated testing frameworks.
-
Experience with communication protocols such as SPI, I2C, UART, CAN, Ethernet, or USB.
-
Exposure to RTOS environments is a plus.
Desired Skills
-
Embedded Linux
-
C++
-
BSP Development
-
Hardware/Software Integration
-
Device Driver Development
-
Board Bring-Up
-
Debugging & Troubleshooting
-
Git
-
Automated Testing
-
System Validation