Firmware Engineer - Firmware Developer
- Participate in the design, development, implementation and testing of firmware (embedded programming) for the organization's new hardware systems, or upgrade existing firmware for more efficient operation.
- Provide information to, and generate reports for, Firmware Supervisor and Management
- Work with Electrical Engineering, Systems Engineering, and Software Development to assure that firmware designs are compatible and optimized for product performance and project objectives.
- Maintain documentation on the design and maintenance of assigned projects.
- Utilize engineering techniques and analyses of hardware operations to write device drivers for the organization's hardware products or for use in interfacing with various products by the end user.
- Design, develop and implement firmware for the organization's new hardware systems, or upgrade existing firmware for more efficient operation.
- Analyze entire hardware/software system, noting interaction of parts, to determine cause of bugs or problems encountered in operation. Develop debugging strategy and implement or write instructions for implementation by Manufacturing, Service and others.
- Develop tests, methods and software for test and verification of firmware designs. Evaluate and document test results.
- Develop embedded programming for test equipment, automated assembly fixtures, and other support hardware used in the programming, calibration, and production of company product.
- Provide technical input and assistance is the diagnostics, troubleshooting, and correction of product system problems.
- Identify and evaluate new technologies and tools, determining how they may be applicable to the organization's product line or operations.
- Provide technical advice within field of expertise to other organization personnel as may be requested. Evaluate current processes and procedures, recommending and implementing changes where indicated and approved.
- Attend and participate in a variety of meetings and task force groups to integrate activities, communicate issues, obtain approvals, resolve problems and maintain specific level of knowledge pertaining to new developments, requirements and policies
- Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science or similar technical degree.
- Experience with Linux in an embedded environment is a plus
- Experience with Verilog is a must
- 5-7 years of applicable firmware development experience.
- Main requirements:
- Experience with Xilinx Zinq-7000 SoC running Linux
- Xilinx FPGA development in Vivado using Verilog
- Developing service-level applications using C++ in a Linux environment
- General digital signaling (PWM, SPI, I2C, RS232
- Source control with SVN and/or GIT