
Engineer I - Software Engineer (embedded)
- University Park, IL
- Permanent
- Full-time
- Develop firmware architectures and algorithms to meet product requirements, considering hardware constraints and performance optimization.
- Write clean, efficient, and well-documented firmware code using embedded C/C++ programming languages, adhering to coding standards and best practices.
- Understand and utilize various hardware components like microcontrollers, memory, peripherals, and communication interfaces to interact with them through firmware.
- Work with RTOS to manage system tasks with precise timing and priority levels.
- Conduct thorough unit, integration, and system-level testing to identify and resolve firmware defects, utilizing debugging tools and techniques.
- Work closely with hardware engineers to ensure smooth integration between firmware and hardware components, addressing design challenges and providing feedback.
- Create detailed technical documentation for firmware design, implementation, and testing procedures.
- Support existing firmware by implementing bug fixes, feature enhancements, and updates to address customer needs.
- May include travel to the field and/or trade shows.
- Perform product evaluations to determine if engineering standards are met.
- Flexibility to perform other duties and assignments as required
- Bachelor's degree in computer science or equivalent from an accredited university.
- 0-3 years of previous experience in a similar role.
- Strong proficiency in C/C++ programming languages with a focus on embedded systems.
- Deep knowledge of microcontroller architectures, memory management, peripherals, and communication protocols.
- Experience with popular RTOS like FreeRTOS, Zephyr, or similar.
- Familiarity with IDEs, debuggers, emulators, and other development tools for embedded systems.
- Experience with unit testing, integration testing, and system-level validation methodologies.
- Excellent analytical and debugging skills to identify and troubleshoot complex firmware issues.
- Ability to effectively communicate technical concepts to both technical and non-technical stakeholders.