Role: Embedded Software Engineer
Loc: Mossville, IL
Position DescriptionRequired Education - Bachelor's degree (or equivalent) in Computer Science, Software Engineering, or a related engineering/technical discipline from an accredited institution.
- Relevant internship experience may be considered toward meeting the degree requirement.
- Associate degree only is not accepted.
Required Skills - 4+ years of embedded C/C++ development experience.
- 4+ years of embedded systems development experience on Linux and RTOS platforms.
- Strong understanding of sensor integration and interfacing.
- Ability to read and interpret schematics and component datasheets.
- Foundational understanding of the full software development lifecycle, including requirements gathering, design, development, testing, and deployment.
- Basic troubleshooting skills with the ability to diagnose issues and implement system fixes.
- General knowledge of computer hardware and software fundamentals.
- Familiarity with development tools and technologies used in embedded systems (e.g., SQL, Visual Basic, or similar tools).
Soft Skills (Must-Have) - Strong verbal and written communication skills.
- Effective problem-solving and analytical abilities.
- Strong interpersonal skills with a customer-service mindset.
- Proven ability to collaborate effectively in team environments.
- Self-motivated, proactive, and capable of learning quickly in a fast-paced environment.
- Willingness to invest the time required to complete tasks and meet objectives.
- Experience presenting design concepts, technical reviews, and results to stakeholders.
Desired Skills (Nice-to-Have) - Experience in robotics, remote systems, or autonomous technologies.
- Familiarity with communication protocols such as CAN and Ethernet, and related tools (e.g., CANape, Wireshark).
- Experience with software development tools including Git, debuggers, and compilers.
- Strong experience with Linux-based development environments.
- Exposure to ROS (Robot Operating System).
- Experience with perception or positioning sensor calibration and configuration.
- UI development experience using the Qt framework.
- Understanding of FMEA processes and electronic system failure modes.
- Experience developing real-time embedded software for mobile, agricultural, construction, or industrial applications.
Job Responsibilities - Design and implement embedded software for devices and systems, from requirements through production and deployment across product lines.
- Define logical and physical database structures and collaborate on database implementation or guide others in doing so.
- Analyze system performance and improve efficiency, stability, and scalability.
- Evaluate project requirements and estimate effort, time, and cost for implementation.
- Design and develop automation and autonomy features for real-time control systems.
- Translate system needs into detailed technical requirements for new features and enhancements.
- Collaborate with cross-functional teams to define and refine design approaches.
- Develop and implement features in alignment with design specifications.
- Perform debugging, triage, and issue resolution across systems.
- Develop and execute test plans to validate software functionality and performance.
- Work closely with system engineering, machine systems, software, and validation teams throughout the development lifecycle.