What are the responsibilities and job description for the Staff Embedded Development Engineer position at Generac?
Generac Clean Energy Solutions (GCES) is on a mission to drive down global carbon emissions. We are looking for a motivated Embedded Software Engineer with insatiable curiosity to help create next-generation energy storage products.
The successful applicant will join a team of highly knowledgeable and collaborative engineers. You will have the opportunity to solve challenging problems that unlock residential PV and energy storage systems at mass scale
.As a member of the gateway team, you will be in the center of system interactions between embedded power-electronic devices and our cloud platform. Your code will configure and monitor system operation, allow for effective fleet maintenance and open the door for emerging connected services
.
GCES combines the speed and excitement of a technology startup with the resources and market power of an S&P 500 industry leader. Our careers offer boundless opportunity for growth for energetic, mission-driven applicants who seek challenge and impact in a fast-paced culture of teaching, learnin
g.
This role will be located onsite at the Engineering Center of Excellence in Reno, NV. This is an on-site role, with reasonable flexibility and accommodatio
ns.
Essential Duties & Responsibilit
- ies:Lead the design and development of new software components written in Rust on an embedded linux platform. Drive software development for performance, scalability, robustness and maintainabil
- ity.Perform hands-on code implementation, refactoring, debugging and integration test
- ing.Apply industry best practices to deliver simple, high-quality software that is well tested, documented and meets requireme
- nts.Write automated tests and integrate them into a continuous integration environm
- ent.Drive testing strategy to improve code coverage and release qual
- ity.Drive improvements to firmware development process for performance, scalability, robustness, and traceabil
- ity.Collaborate and integrate with firmware teams, manufacturing-test, and cloud infrastructure teams to develop fully-integrated syst
- ems.Participate in sprints and associated scrum meeti
- ngs.Perform code reviews. Review peer contributions in pull requests to improve code quality across the t
- eam.Mentor junior engine
- ers.Improve team cohesion, resiliency and capacity through hiring and building internal leadership and technical de
pth.
Minimal Qualificat
- ions:Bachelor’s degree in computer science, software engineering or related discip
- line.8 years of engineering experience with demonstrated expertise in software development and device communica
- tion.Expert-level experience with linux application development in C, C , and Rust (at least 2 of them) on embedded dev
- ices.Demonstrated delivery of software for products at scale and qua
- lity.Demonstrated success in software validation development (unit test, smoke tests, automated regression, SIL/HIL approa
- ches)Proficiency in Python for testing, emulation and other purp
- oses.Excellent software fundamentals including architectural design, algorithm development, data structures, code modularity, and maintainabi
- lity.Demonstrated technical leadership in the design and implementation of software applications in a professional con
- text.Excellent problem-solving, analytical, and communication sk
- ills.Proactive, engaged, and positive approach to tackling challenging tasks and taking owner
ship.
Preferred Qualifica
- tions:Experience with Yocto Linux, linux system configuration, systemd, shell scripting is highly de
- sired.Familiarity with MQTT and Protocol buffers is a
- bonus.Experience with CANbus, DBC file management and CANbus tools like cantools, PCAN Explorer is de
- sired.Prior experience in power electronics, or battery product development is a
- plus.Prior experience in real-time operating systems and functional safety is de