Company Generac Power Systems

Name Embedded Linux Software Engineer II

Req # 64502

Employment Type Full Time

Shift 1st

Are you interested in joining a software team in the Clean Energy industry? 

Do you want to work with the latest technologies in Embedded Linux, Rust application development, and IoT? 

Come join the Clean Energy Team in our mission to accelerate the adoption of renewable energy and create a more intelligent home. 

Generac Power Systems is seeking a Software Engineer II to join our Embedded Linux Applications team. We are actively working to reduce global carbon emissions through the manufacturing and sale of renewable power backup systems. We are seeking engineers looking to apply their technology skills to the creation of embedded Linux applications and IoT services that support this mission. 

Role Location: Onsite in Reno, Nevada

Why work for us?
  • You want to contribute technologically to the reduction of worldwide carbon emissions.
  • You want to help build a distributed power generation network. 
  • You want to participate in embedded Linux application development.
  • You want to interact with a device network through remote monitoring, control, and OTA FW updates.
  • You are interested in Rust development.

What will you do? 

  • You will take well written, but complex tasks and return a quality implementation for those tasks, asking high-quality questions from the designer when necessary. 
  • Successful candidates will have strong engineering skills, self-motivation, and communication.
  • You will need to have a passion for quality and an ability to implement complex designs. Above all, you should be passionate about solving real-world problems, and bringing value to the apps you help create.

Essential Duties & Responsibilities:
  • Develop embedded Linux applications using Rust.
  • Work with other programming languages such as python and C to support testing and building of Rust applications.
  • Help develop and maintain a multi-device network through remote monitoring, control, and OTA firmware updates.
  • Build robust testing infrastructure for the applications you develop.
  • Utilize modern tools for continuous development and frequent releases.
  • Engage in data-driven processes for quality product development.
  • Collaborate with cross-functional teams for innovative system design and implementation.

Qualifications:
  • Bachelor’s degree in computer science, software engineering or a related discipline, or able to display engineering excellence through professional contributions. 
  • 3 years of relevant work experience. 
  • Experience writing automated tests.

What other skills would be helpful?
  • Experience with the Rust programming language.
  • Experience with python, C, bash, JSON, Protobufs.
  • Experience with MQTT.
  • Experience with embedded Linux development.
  • Experience with Linux OS fundamentals.
  • Experience with OTA firmware updates.
  • Experience with multi-device CAN bus systems.
  • Experience with UDS (Unified Diagnostic Services).
  • Experience with AWS IoT services S3, IAM, IoT Jobs etc.
  • Knowledge of CI/CD tools and processes; Git, CircleCI.
  • Excellent software fundamentals including architectural design, algorithm development, data structures, code modularity, and maintainability.
  • Experience with Jira task management.



“We are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status, or any other characteristic protected by law.”