|Position Summary: |
Develop firmware and/or software as part of highly integrated, custom embedded processing systems used in new products developed by our client and its customers.
What you will be doing:
Experience you will need:
- Design and development of embedded software for new electronic products ranging from simple microcontroller-based solutions to highly complex embedded processing systems.
- Work with team members, including hardware designers, to identify software related requirements and develop corresponding software design strategies or architecture that meets those requirements.
- Collaborate with other members of the design team to evaluate possible alternatives during the development process and determine best approach based on performance, cost, and resources
- Develop software specifications based on requirements and implement embedded code in accordance with those defined requirements and/or specifications.
- Participate in the bring-up of new custom embedded processor hardware with support from hardware designers
- Establish software verification testing tools and methods and execute software testing activities
- Document ideas, designs, specifications, and instructions to Enercon s standards.
- Mentor junior members of the engineering staff to promote design team abilities and establish good working practices.
- A 4-year degree or equivalent experience in Computer Engineering, Electrical Engineering, Computer Science or a related engineering discipline.
- A minimum of 5 years of embedded firmware development or equivalent experience
- Demonstrated skill in developing original designs with C/C++ in embedded environments including bare-metal, multi-threaded RTOS, and embedded operating systems.
- 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.
- Strong understanding of embedded software design and architectural concepts as well as the integration between firmware and hardware.
- 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.
- Demonstrated 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.
- Understanding of higher-level languages, object-oriented methodologies, user-interface implementation, and PC application programming. Experience with Qt framework is a plus.
- Strong understanding of software test and QA tools and methodologies.
- 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.
- Must possess good interpersonal skills and have the ability to work between multiple departments in carrying out this position s duties.