R&D Senior Embedded Software Engineer
About the role
Who We Are
Established in 1914, NOCO designs and creates premium automotive and consumer electronic products. Through these world-class offerings, NOCO has effectively set the new standard in design, performance, and safety of its products in the consumer, commercial, and industrial markets.
What You Will Be Doing with Us
You will apply senior software engineering expertise as part of the NOCO R&D group in Peoria, Arizona, providing software development and verification support for NOCO’s market-leading AC- and battery-powered consumer electronics such as vehicle jump starters (boosts), smart chargers, smart lithium batteries, air pumps, and other products. In this role you will:
Architect and design code for ARM microcontroller-based NOCO products
Design and implement control algorithms for electronic charging systems
Support existing products, primarily vehicle boosts, with ongoing software feature enhancements
Troubleshoot and determine root cause and resolution of production software issues
Devise best-practice software coding & verification methodology, including use of AI LLM workflows and agents, and work with test engineers to implement automated testing
Devise algorithms to maximize performance on both virtual and real hardware
Work with prototype hardware and identify ways to leverage and enhance new hardware capabilities
Work closely with hardware and test engineers, applying hands-on knowledge of electrical hardware design and lab test equipment to inform software design
Code software for user interfaces such as LEDs and small format displays, as well as serial communications buses such as SPI, I2C, CAN Bus, and others
Code software for fast charging/discharging of lithium batteries using industry standard interfaces such as USB-A, USB-C, and others. Knowledge of lithium battery charging methodology and battery management system (BMS) operation is required.
What You Will Need
10+ years of relevant hands-on embedded software development and a Bachelor of Science degree (or higher) in Computer Science, Computer Engineering, Electrical Engineering, or similar fields
Must be a self-directed problem solver who can work in both individual and team settings to achieve robust software solutions for complex design challenges
Must be able to organize and prioritize tasks across multiple projects to meet product timelines in the fast-paced consumer electronics market
Experience developing both super-loop and RTOS threaded software architectures for real-time embedded software applications
Good working knowledge of electronic hardware and system design to be able to write software meeting hardware functional requirements
Ability to design and tune/verify PID control systems for general control applications, as well as for specific motor control schemes such as PMSM control, FOC, and BLDC trapezoidal control
Familiarity with BSP/FSP/other peripheral code configuration & auto-generation tools, plus the ability to go beyond provided drivers to directly program features like ADC windowing and DMA, event controllers, timer usage, and experience with low power design.
Hands-on experience with electrical hardware design and interfacing with lab test equipment such as oscilloscopes, spectrum analyzers, electronic loads (e-loads), digital test equipment, etc.
Working knowledge of methods for charging/discharging lithium batteries using industry standard interfaces such as USB-A, USB-C, and others, including BMS control, cell balancing techniques, charging profiles, etc.
Familiarity with serial communications interfaces and protocols such as I2C/SMBus, SPI, & CAN Bus
Proven ability to determine root-cause of software performance issues
Proficient in C/C++, with an understanding of best-practice software development, source management, and verification methodologies targeting real-time systems
Ability to work well in a cooperative and positive team environment, including mentoring junior developers
Excellent communication, collaboration, and coordination skills as well as a talent and desire for mentoring junior engineers
What We Would Also Like
Familiarity with real-time OS, ARM microcontrollers, Eclipse-based IDEs
Knowledge in use and application of AI models, agents, and workflows for coding embedded and application software and automating processes
Some knowledge of scripting methodology/languages such as Python or shell scripting
Ability to learn new technologies and product areas quickly
Experience using Windows-based and/or Linux-based code development environments
Employment Type & Location
This is a full-time, exempt position based on-site at NOCO’s Peoria, Arizona facility. Relocation assistance may be available for the right candidate.
Benefits
In addition to compensation, NOCO offers a comprehensive benefits package that includes medical, dental, and vision coverage, a 401(k) with company match, and paid time off.
Physical Requirements & Safety
This role involves regular on-site hands-on work with electromechanical and electrochemical systems and lab test equipment. Candidates must be able to work safely in a laboratory and light-manufacturing environment, follow all electrical-safety protocols, and occasionally lift and handle equipment and battery products weighing up to 30 pounds.
Equal Opportunity Employer
NOCO is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, protected veteran status, or any other characteristic protected by law.
Responsibilities
- Architect and design code for ARM microcontroller-based NOCO products
- Design and implement control algorithms for electronic charging systems
- Support existing products with ongoing software feature enhancements
- Troubleshoot and determine root cause and resolution of production software issues
- Devise best-practice software coding & verification methodology
- Work with prototype hardware and identify ways to leverage and enhance new hardware capabilities
- Code software for user interfaces and serial communications buses
- Code software for fast charging/discharging of lithium batteries
Qualifications
- 10+ years of relevant hands-on embedded software development
- Bachelor of Science degree (or higher) in Computer Science, Computer Engineering, Electrical Engineering, or similar fields
- Experience developing both super-loop and RTOS threaded software architectures
- Good working knowledge of electronic hardware and system design
- Ability to design and tune/verify PID control systems
- Hands-on experience with electrical hardware design and interfacing with lab test equipment
- Proficient in C/C++ with an understanding of best-practice software development
Benefits
- Medical, dental, and vision coverage
- 401(k) with company match
- Paid time off
Skills mentioned
About NOCO
We invent, create, and produce world-class consumer products through a diverse collection of exceptional thinkers and designers that push the limits of what's possible. We are connected to a common goal of bringing consumers the ultimate user experience. Our courage to challenge conventionality; our dedication to remaining vigilant to the highest quality standards; and our passion for sharing our achievements, make us who we are today. We are NOCO. NOCO is an Equal Employment Opportunity Employer that is committed to inclusion and diversity. We also take affirmative action to offer employment and advancement opportunities to all applicants, including minorities, women, protected veterans, and individuals with disabilities.