Job Description
The Senior Firmware Engineer is responsible for designing and writing high quality code to support the development of the company's hardware products. The engineer will need to read schematics, read datasheets, and utilize both hardware and software debugging tools in order to complete projects. The engineer is expected to participate in the designing of solutions that meet customer needs, document the design, write clear concise code, comment code as appropriate, and create documentation outlining code functionality. All engineers are required to follow Brady’s development process which includes our iterative development process. Individuals will be Responsible for managing the development of large modules as part of a development team. Individuals may utilize other resources in development of technology needed for development of firmware.
Job Functions:
- Design, develop, code, and document larger modules as part of firmware projects and lead a small firmware project.
- Time estimate coding efforts for assigned deliverables.
- Work with Electrical and Mechanical Engineers to develop larger firmware modules or a small complete project.
- Utilize C++ and object oriented coding techniques when developing code bases, follow coding standards and follow standard development best practices.
- Read schematics, utilize oscilloscopes, digital analyzers and other test equipment in the development and debugging of firmware designs.
- Analyze electrical designs to make sure it meets the firmware needs for the larger project.
- Develop UI/motor control firmware for embedded devices for assigned deliverables.
- Setup and use software code debuggers for specific processor development environments used in Brady printers.
- Direct internal and external resources in firmware development to deliver assigned modules.
- Make technology selections for assigned modules that support the overall architecture goals of the organization.
- Design, develop, code, and document small modules as part of firmware projects.
- Time estimate coding efforts for assigned deliverables.
- Work with Electrical and Mechanical Engineers to develop firmware for assigned deliverables
Required Knowledge, Skills & Abilities:
- Minimum degree in Bachelors of Science in Computer Engineering, Electrical Engineering, related field or equivalent experience
- Minimum of 6-8 years of experience
- Experience with implementing embedded operating systems such as Microsoft CE, QNX, Micrium, etc. on target hardware
- Demonstrated experience with C++ language programming
- Demonstrated knowledge of Object Oriented Analysis and Design
- Knowledge of one embedded graphics libraries
Desired Characteristics: Knowledge, Skills and Abilities
- Knowledge of .net and C# programming
- Knowledge of C++ ISO/IEC 14882:2203 or higher
- Knowledge of QT or Peg
- Knowledge and experience with creating and reading UML models
- Knowledge of standard ISO/IEC 14882:1998