We are looking for a Senior Software Engineer to lead the software direction of a well-established product line in Peoria, Arizona. This role is ideal for an engineer who enjoys working at the intersection of embedded development, product enhancement, and long-term code quality. The position offers the opportunity to shape reliable, high-volume systems while introducing modern engineering practices that strengthen performance, testability, and maintainability.
Responsibilities:
- Lead the software architecture, development, and ongoing support of embedded applications for microprocessor- and microcontroller-based products.
- Develop robust, maintainable code using established embedded engineering standards and sound design principles.
- Introduce and expand modern verification approaches such as unit testing, automated build pipelines, and virtualized software validation methods.
- Create and execute hardware-focused validation strategies, including simulated test environments and physical fixture-based testing.
- Investigate software issues found in production and drive effective resolutions to restore and improve product reliability.
- Deliver new capabilities for existing products and confirm performance through structured verification activities.
- Enhance the product line through continuous improvements that increase efficiency, dependability, and competitive value.
- Research emerging software practices and apply relevant advancements to embedded systems development within the organization.
- Strong experience programming in C for real-time embedded systems.
- Practical knowledge of toolchains, build environments, and the ability to adjust compilation and linking processes for specific project needs.
- Demonstrated problem-solving ability in complex software and hardware-related scenarios.
- Commitment to writing clean, organized, and maintainable code for production environments.
- Experience delivering reliable, fault-tolerant embedded software at scale.
- Familiarity with modern embedded development methods, including hardware abstraction layers and version control tools such as Git.
- Ability to use debugging interfaces and laboratory equipment to diagnose software and basic hardware issues.
- Working understanding of electrical schematics, common electronic components, and standard embedded interfaces such as CAN, I2C, ADC, and DAC.