The senior firmware engineer position involves work of a technical and complex nature requiring the use of analytical ability and independent thinking to complete assignments where there is ambiguity in acceptable practices, precedents, and functional principles. This guy engineer will utilize 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. Individual will be responsible for managing the development of broad architecture for entire product line as part of a development team. Individual may utilize other resources in development of technology needed for development of software.
Essential Job Functions:
Lead teams that design, develop, code, and document entire systems across multiple projects.
Lead time estimate coding efforts for projects.
Utilize C++ and object oriented coding techniques when developing code bases, follow coding standards and follow standard development best practices and drive this practice across the entire organization.
Drive UI architecture for embedded devices across all products/projects to maximize re-use of code.
Setup and use software code debuggers for specific development environments used in Brady printers.
Responsible for the growth of other engineers, and/or the growth of others in their group.
Lead organization to develop platform components to deliver UI software for embedded devices.
Required Knowledge, Skills & Abilities:
Minimum of Bachelors of Science in Computer Science, Computer Engineering, Electrical Engineering.or related field or equivalent experience.
Extensive experience with C++11 and STL
Extensive and demonstrated skills at designing object oriented systems.
Knowledge of Qt and QML
Desired Knowledge, Skillsr & Abilities:
Knowledge of .net and C# programming a plus
C++ language programming standard ISO/IEC 14882:2003 or ISO/IEC 14882:2011
Knowledge and experience with creating and reading UML models
Knowledge of agile methodologies a plus