As a Principal Embedded Firmware Engineer for the organization, you will lead, and contribute directly to, the development of firmware and/or software as part of highly integrated, custom embedded processing systems used in new products developed by Enercon and its customers.
Functions & Responsibilities
In the role of Principal Embedded Firmware Engineer:
- You will design embedded software for new electronic products ranging from simple microcontroller-based solutions to highly complex embedded processing systems.
- You will serve as software lead on complex embedded systems development projects – identifying required development activities and directing other team members in completing those activities.
- You will, as software lead, work with Program Managers to quote development work and plan/maintain the project schedule for development programs.
- You will collaborate with project team members to identify software related requirements and develop corresponding software design strategies or architecture using the best approach based on performance, cost, and resources.
- You will develop detailed software specifications based on requirements and implement embedded code in accordance with those defined requirements and/or specifications.
- You will participate in the bring-up of new custom embedded processor hardware with support from hardware designers.
- You will establish software verification testing tools and methods and execute software testing activities.
- You will document ideas, designs, specifications, and instructions to Enercon’s standards.
- You will operate in the role of subject matter expert with respect to the software aspects of embedded systems design.
- You will collaborate with the Engineering Manager to develop and improve department processes and tools, particularly those related to software development.
- You will mentor other members of the engineering staff to promote design team abilities and establish good working practices.
The skills you need to succeed:
- You must demonstrate skill in developing original designs with C/C++ in embedded environments including bare-metal, multi-threaded RTOS, and embedded operating systems (Linux, etc.)
- You must have communication and technical leadership skills needed to interface with the customer and direct a technical team through a development project.
- You must have specific experience with common microcontroller and/or embedded processing platforms such as ARM and PIC. Experience with DSP and/or FPGA based SoCs is a plus.
- You must have a strong understanding of embedded software design and architectural concepts as well as the integration between firmware and hardware.
- You must have a strong understanding of software development tools and methodologies used in the context of embedded systems. Familiarity with source control via established systems such as Git.
- You must demonstrate skill in independently using electronics lab equipment to develop/troubleshoot low-level drivers and hardware integration for interfaces such as I2C, SPI, UART, USB, etc.
- You must have a thorough understanding of higher-level languages, object-oriented methodologies, UI implementation, and PC application programming. Experience with Qt framework is a plus.
- You must have a strong understanding of software test and QA tools and methodologies.
- You must be able to work with a minimum of supervision and follow established design procedures during the development cycle, documenting the design to Enercon’s standards.
- You must possess good interpersonal skills and have the ability to work between multiple departments in carrying out this position’s duties.
Education and experience of a successful candidate:
- A 4-year degree or equivalent experience in Computer Engineering, Electrical Engineering, Computer Science or a related engineering discipline.
- A minimum of 10 years of embedded firmware development or equivalent experience. 15+ years preferred.
Enercon Technologies offers a competitive benefits package.