NRG Systems - Sr. Firmware Engineer

Renewable NRG Systems.jpg

NRG Systems: Sr. Firmware Engineer

  • Department:           Engineering
  • Reports To:            SW/FW Engineering Manager
  • Supervisory Role:   None
  • Schedule:                Full Time
  • Approved Date:      June 2017

Key Focus:

The Senior Firmware Engineer will contribute to the company’s strategic product portfolio. This role will primarily focus on writing embedded software for microprocessor-based measurement and communications devices. This position will also contribute to the hardware design for these devices. The scope of responsibility will begin with continuous improvement of existing products and later span the complete development lifecycle for future products, including ideation, concept development, requirements definition, analysis, detailed software and system design, implementation, testing, and product support. This is a highly valued position. The successful candidate will work with a team charged with solving complex engineering problems; contributing to the continuous improvement of the company’s products, engineering tools, and practices; and development of innovative new products.

The Senior Firmware Engineer position may include the role of Project Lead for one or more major development projects. As a Project Lead, the successful candidate will assert influence over the technical definition of a product, and be responsible for meeting technical and schedule commitments. Engineers normally serve as a Project Lead for a limited duration that is commensurate with the duration of the project for which they play that role.

This is a full-time position in the engineering department and reports to the Manager of Software Engineering. This position will work collaboratively with engineers and product managers to achieve department goals in line with the company strategic plan, and will embrace the high standards of NRG ethics, core values, quality, and culture.

Primary Responsibilities:

Development

  • Architect, design, implement and verify embedded microcontroller software on major development projects
  • Work with Electrical Engineers to architect, design, develop, and debug hardware components and printed circuit board assemblies
  • Work with Software Engineers to develop and manage interfaces and communication protocols for desktop, mobile, and cloud-based applications
  • Design to optimize cost, power consumption, and manufacturability
  • Investigate, design, and develop new feature requests and bug fixes following initial product release
  • Conduct embedded software troubleshooting down to the electronic circuit level
  • Develop embedded software test plans appropriate for various phases of product development
  • Execute design reviews with engineers and additional stakeholders as appropriate
  • Execute code reviews with engineers
  • Conduct hands-on prototyping and field testing
  • Design experiments, qualification testing, data collection and analysis
  • Conduct engineering qualification and verification testing and document results
  • Create documentation that is clear and easy to follow
  • Identify features and improvements to enhance overall product values
  • Support existing embedded software
  • Communicate with customers and other stakeholders to understand their product design needs
  • Serve as contributor to product idea innovation and continuous improvement
  • Become a process owner in developing and continuously improving embedded software development practices and tools

Project Leadership

  • Drive the development of a product to successful completion according to the established success criteria for the project
  • Make final technical decisions after soliciting appropriate input
  • Develop schedule estimates from project team inputs
  • Ensure on-time completion of agreed-to milestones
  • Ensure all team members are appropriately tasked on the project
  • Elevate all obstacles to the appropriate level of management

Qualifications:

Minimum Technical Skills

  • Bachelor’s degree in engineering or computer science
  • 5+ years’ experience in embedded software programming that includes C (additional languages a plus)
  • Thorough understanding of real-time operating systems
  • Strong knowledge of mature and modern embedded software development best practices for the full software lifecycle including design, coding, testing, and supporting after release
  • Experience working on complex embedded software-based products in a team environment
  • Experience with embedded software engineering configuration management
  • Experience in circuit design, analysis and test
  • Proficient in reading electrical schematics, and a strong understanding of analog and digital circuits
  • Experience working on all levels of the hardware stack for embedded systems
  • Able to quickly and accurately estimate time to complete tasks for a project

Preferred Technical Skills

  • Degree in electrical engineering
  • Expertise in electrical circuit and PCB design that includes: microprocessors; A/D and D/A converters; memory and bus management; power supplies; modems; various cable interfaces; etc.
  • Expertise with a variety of communications hardware, protocols, peripheral buses, and network technologies (e.g., TCP/IP, CDMA, GSM, BGAN, 3G- and 4G-LTE, RS-485, Modbus, DNP3, I2C, SPI, USB, UART, Bluetooth, Bluetooth Low Energy, Wi-Fi, ZigBee, etc.)
  • Experience with electromechanical systems and systems integration
  • Proficient in embedded software testing and test automation throughout the development lifecycle
  • Experience practicing Agile methodologies (esp. Scrum and XP) for embedded software development
  • Experience in systems specification and analysis

Required Interpersonal Skills

  • Excellent written and oral communication skills
  • Excellent listener
  • A positive influencer
  • Innovative
  • Strong attention to detail
  • Strong customer service skills necessary to engage customers in discussions relative to our work
  • Ability to be open minded, letting go of personal biases
  • Ability and desire to build consensus among peers
  • Ability and desire to work effectively and collaboratively in teams
  • Ability and desire to take initiative to advance the goals of the department
  • Ability to manage priorities and risks to meet deadlines
  • Ability to be productive in the face of ambiguity
  • Ability to remain focused on priorities
  • Ability to think strategically with deliberate objectivity (think outside the box)
  • Ability and desire to expand his/her knowledge into new technical areas relevant to our business (continuous technical skill improvement)

Working Conditions/Physical Requirements

  • Work performed in a climate-controlled office environment
  • Primary duties performed in a seated position
  • Some field work may be required